{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "64c956bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c1682ede",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the LEMCell\n",
    "class LEMCell(nn.Module):\n",
    "    def __init__(self, ninp, nhid, dt):\n",
    "        super(LEMCell, self).__init__()\n",
    "        self.ninp = ninp\n",
    "        self.nhid = nhid\n",
    "        self.dt = dt\n",
    "        self.inp2hid = nn.Linear(ninp, 4 * nhid)\n",
    "        self.hid2hid = nn.Linear(nhid, 3 * nhid)\n",
    "        self.transform_z = nn.Linear(nhid, nhid)\n",
    "        self.reset_parameters()\n",
    "\n",
    "    def reset_parameters(self):\n",
    "        std = 1.0 / np.sqrt(self.nhid)\n",
    "        for w in self.parameters():\n",
    "            w.data.uniform_(-std, std)\n",
    "\n",
    "    def forward(self, x, y, z):\n",
    "        transformed_inp = self.inp2hid(x)\n",
    "        transformed_hid = self.hid2hid(y)\n",
    "        i_dt1, i_dt2, i_z, i_y = transformed_inp.chunk(4, 1)\n",
    "        h_dt1, h_dt2, h_y = transformed_hid.chunk(3, 1)\n",
    "\n",
    "        ms_dt_bar = self.dt * torch.sigmoid(i_dt1 + h_dt1)\n",
    "        ms_dt = self.dt * torch.sigmoid(i_dt2 + h_dt2)\n",
    "\n",
    "        z = (1. - ms_dt) * z + ms_dt * torch.tanh(i_y + h_y)\n",
    "        y = (1. - ms_dt_bar) * y + ms_dt_bar * torch.tanh(self.transform_z(z) + i_z)\n",
    "\n",
    "        return y, z\n",
    "\n",
    "# Define the LEM model\n",
    "class LEM(nn.Module):\n",
    "    def __init__(self, ninp, nhid, nout, dt=1.):\n",
    "        super(LEM, self).__init__()\n",
    "        self.nhid = nhid\n",
    "        self.cell = LEMCell(ninp, nhid, dt)\n",
    "        self.classifier = nn.Linear(nhid, nout)\n",
    "        self.init_weights()\n",
    "\n",
    "    def init_weights(self):\n",
    "        for name, param in self.named_parameters():\n",
    "            if 'classifier' in name and 'weight' in name:\n",
    "                nn.init.kaiming_normal_(param.data)\n",
    "\n",
    "    def forward(self, input):\n",
    "        y = input.data.new(input.size(1), self.nhid).zero_()\n",
    "        z = input.data.new(input.size(1), self.nhid).zero_()\n",
    "        for x in input:\n",
    "            y, z = self.cell(x, y, z)\n",
    "        out = self.classifier(y)\n",
    "        return out\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a982afa5",
   "metadata": {},
   "source": [
    "### PINN solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "79da65b0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x size (1, 256)\n",
      "t size (1, 100)\n",
      "u size (256, 100)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# importing data\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burg.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u1']\n",
    "\n",
    "#Use the loaded variables as needed\n",
    "print(\"x size\", x.shape)\n",
    "print(\"t size\", t.shape)\n",
    "print(\"u size\", u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u), np.max(u), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Burgers')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "39c40163",
   "metadata": {},
   "outputs": [],
   "source": [
    "### Exact Solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9967dbae",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x size (256, 1)\n",
      "t size (100, 1)\n",
      "u size (256, 100)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# importing data\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import time\n",
    "import scipy.io\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burgers_shock.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u_1 = mat_data['usol']\n",
    "\n",
    "#Use the loaded variables as needed\n",
    "print(\"x size\", x.shape)\n",
    "print(\"t size\", t.shape)\n",
    "print(\"u size\", u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u_1), np.max(u_1), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u_1.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Burgers')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "83a01b14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(256, 100)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "\n",
    "# Toy problem data\n",
    "input_size = 256\n",
    "hidden_size = 32\n",
    "output_size = 256\n",
    "sequence_length = 79\n",
    "batch_size = 1\n",
    "num_epochs = 20000\n",
    "\n",
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "u[:, 0:100].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "0496e4a4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (256,)\n",
      "input data shape (256, 79)\n",
      "Target data shape (256, 79)\n",
      "input tensor shape torch.Size([1, 79, 256])\n",
      "Target tensor shape torch.Size([1, 79, 256])\n"
     ]
    }
   ],
   "source": [
    "input_data = u[:,0:79]\n",
    "target_data = u[:,1:80]\n",
    "\n",
    "test_data = u[:,79]\n",
    "#test_target = u[:,80:100]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "#print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)\n",
    "\n",
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "718d5b86",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 1, input_size).float()\n",
    "#test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d733ab9a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/data/localhome/tkapoor/anaconda3/lib/python3.9/site-packages/torch/nn/modules/loss.py:530: UserWarning: Using a target size (torch.Size([1, 79, 256])) that is different to the input size (torch.Size([79, 256])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size.\n",
      "  return F.mse_loss(input, target, reduction=self.reduction)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.3866974115371704\n",
      "Epoch: 20/20000, Loss: 0.3487780690193176\n",
      "Epoch: 30/20000, Loss: 0.3087990283966064\n",
      "Epoch: 40/20000, Loss: 0.2699531018733978\n",
      "Epoch: 50/20000, Loss: 0.2344971448183060\n",
      "Epoch: 60/20000, Loss: 0.2015173286199570\n",
      "Epoch: 70/20000, Loss: 0.1723766177892685\n",
      "Epoch: 80/20000, Loss: 0.1483513861894608\n",
      "Epoch: 90/20000, Loss: 0.1284097582101822\n",
      "Epoch: 100/20000, Loss: 0.1117339953780174\n",
      "Epoch: 110/20000, Loss: 0.0977326631546021\n",
      "Epoch: 120/20000, Loss: 0.0859487056732178\n",
      "Epoch: 130/20000, Loss: 0.0760185718536377\n",
      "Epoch: 140/20000, Loss: 0.0676476433873177\n",
      "Epoch: 150/20000, Loss: 0.0605934187769890\n",
      "Epoch: 160/20000, Loss: 0.0546537898480892\n",
      "Epoch: 170/20000, Loss: 0.0496585704386234\n",
      "Epoch: 180/20000, Loss: 0.0454635843634605\n",
      "Epoch: 190/20000, Loss: 0.0419462285935879\n",
      "Epoch: 200/20000, Loss: 0.0390020199120045\n",
      "Epoch: 210/20000, Loss: 0.0365417525172234\n",
      "Epoch: 220/20000, Loss: 0.0344892106950283\n",
      "Epoch: 230/20000, Loss: 0.0327788665890694\n",
      "Epoch: 240/20000, Loss: 0.0313525013625622\n",
      "Epoch: 250/20000, Loss: 0.0301372334361076\n",
      "Epoch: 260/20000, Loss: 0.0290109999477863\n",
      "Epoch: 270/20000, Loss: 0.0280308332294226\n",
      "Epoch: 280/20000, Loss: 0.0271436050534248\n",
      "Epoch: 290/20000, Loss: 0.0262243412435055\n",
      "Epoch: 300/20000, Loss: 0.0254273172467947\n",
      "Epoch: 310/20000, Loss: 0.0246974322944880\n",
      "Epoch: 320/20000, Loss: 0.0240183882415295\n",
      "Epoch: 330/20000, Loss: 0.0233833491802216\n",
      "Epoch: 340/20000, Loss: 0.0227856449782848\n",
      "Epoch: 350/20000, Loss: 0.0221767574548721\n",
      "Epoch: 360/20000, Loss: 0.0215996149927378\n",
      "Epoch: 370/20000, Loss: 0.0210633613169193\n",
      "Epoch: 380/20000, Loss: 0.0205504018813372\n",
      "Epoch: 390/20000, Loss: 0.0200629048049450\n",
      "Epoch: 400/20000, Loss: 0.0195939000695944\n",
      "Epoch: 410/20000, Loss: 0.0191286448389292\n",
      "Epoch: 420/20000, Loss: 0.0186489038169384\n",
      "Epoch: 430/20000, Loss: 0.0181993953883648\n",
      "Epoch: 440/20000, Loss: 0.0177528280764818\n",
      "Epoch: 450/20000, Loss: 0.0173244308680296\n",
      "Epoch: 460/20000, Loss: 0.0169120337814093\n",
      "Epoch: 470/20000, Loss: 0.0165140908211470\n",
      "Epoch: 480/20000, Loss: 0.0161296948790550\n",
      "Epoch: 490/20000, Loss: 0.0157567169517279\n",
      "Epoch: 500/20000, Loss: 0.0153942489996552\n",
      "Epoch: 510/20000, Loss: 0.0150421001017094\n",
      "Epoch: 520/20000, Loss: 0.0146992374211550\n",
      "Epoch: 530/20000, Loss: 0.0143658937886357\n",
      "Epoch: 540/20000, Loss: 0.0140422778204083\n",
      "Epoch: 550/20000, Loss: 0.0137283606454730\n",
      "Epoch: 560/20000, Loss: 0.0134236663579941\n",
      "Epoch: 570/20000, Loss: 0.0131275458261371\n",
      "Epoch: 580/20000, Loss: 0.0128393145278096\n",
      "Epoch: 590/20000, Loss: 0.0125583559274673\n",
      "Epoch: 600/20000, Loss: 0.0122841447591782\n",
      "Epoch: 610/20000, Loss: 0.0120162507519126\n",
      "Epoch: 620/20000, Loss: 0.0117543358355761\n",
      "Epoch: 630/20000, Loss: 0.0114981345832348\n",
      "Epoch: 640/20000, Loss: 0.0112474421039224\n",
      "Epoch: 650/20000, Loss: 0.0110021019354463\n",
      "Epoch: 660/20000, Loss: 0.0107619864866138\n",
      "Epoch: 670/20000, Loss: 0.0105270054191351\n",
      "Epoch: 680/20000, Loss: 0.0102970693260431\n",
      "Epoch: 690/20000, Loss: 0.0100721139460802\n",
      "Epoch: 700/20000, Loss: 0.0098520694300532\n",
      "Epoch: 710/20000, Loss: 0.0096370177343488\n",
      "Epoch: 720/20000, Loss: 0.0094266217201948\n",
      "Epoch: 730/20000, Loss: 0.0092209735885262\n",
      "Epoch: 740/20000, Loss: 0.0090200519189239\n",
      "Epoch: 750/20000, Loss: 0.0088236974552274\n",
      "Epoch: 760/20000, Loss: 0.0086318692192435\n",
      "Epoch: 770/20000, Loss: 0.0084444871172309\n",
      "Epoch: 780/20000, Loss: 0.0082614812999964\n",
      "Epoch: 790/20000, Loss: 0.0080827772617340\n",
      "Epoch: 800/20000, Loss: 0.0079082995653152\n",
      "Epoch: 810/20000, Loss: 0.0077379699796438\n",
      "Epoch: 820/20000, Loss: 0.0075717102736235\n",
      "Epoch: 830/20000, Loss: 0.0074094338342547\n",
      "Epoch: 840/20000, Loss: 0.0072510791942477\n",
      "Epoch: 850/20000, Loss: 0.0070965839549899\n",
      "Epoch: 860/20000, Loss: 0.0069457269273698\n",
      "Epoch: 870/20000, Loss: 0.0067984559573233\n",
      "Epoch: 880/20000, Loss: 0.0066545559093356\n",
      "Epoch: 890/20000, Loss: 0.0065126288682222\n",
      "Epoch: 900/20000, Loss: 0.0062295622192323\n",
      "Epoch: 910/20000, Loss: 0.0060072029009461\n",
      "Epoch: 920/20000, Loss: 0.0058312206529081\n",
      "Epoch: 930/20000, Loss: 0.0056541315279901\n",
      "Epoch: 940/20000, Loss: 0.0054842131212354\n",
      "Epoch: 950/20000, Loss: 0.0053147980943322\n",
      "Epoch: 960/20000, Loss: 0.0051327170804143\n",
      "Epoch: 970/20000, Loss: 0.0049659223295748\n",
      "Epoch: 980/20000, Loss: 0.0048077744431794\n",
      "Epoch: 990/20000, Loss: 0.0046537732705474\n",
      "Epoch: 1000/20000, Loss: 0.0045035379007459\n",
      "Epoch: 1010/20000, Loss: 0.0043577156029642\n",
      "Epoch: 1020/20000, Loss: 0.0042155655100942\n",
      "Epoch: 1030/20000, Loss: 0.0040753991343081\n",
      "Epoch: 1040/20000, Loss: 0.0039346287958324\n",
      "Epoch: 1050/20000, Loss: 0.0037930461112410\n",
      "Epoch: 1060/20000, Loss: 0.0036596946883947\n",
      "Epoch: 1070/20000, Loss: 0.0035346036311239\n",
      "Epoch: 1080/20000, Loss: 0.0034161636140198\n",
      "Epoch: 1090/20000, Loss: 0.0033023308496922\n",
      "Epoch: 1100/20000, Loss: 0.0031929996330291\n",
      "Epoch: 1110/20000, Loss: 0.0030893252696842\n",
      "Epoch: 1120/20000, Loss: 0.0029896285850555\n",
      "Epoch: 1130/20000, Loss: 0.0028939580079168\n",
      "Epoch: 1140/20000, Loss: 0.0028020783793181\n",
      "Epoch: 1150/20000, Loss: 0.0027126306667924\n",
      "Epoch: 1160/20000, Loss: 0.0026268248911947\n",
      "Epoch: 1170/20000, Loss: 0.0025455490685999\n",
      "Epoch: 1180/20000, Loss: 0.0024674416054040\n",
      "Epoch: 1190/20000, Loss: 0.0023925965651870\n",
      "Epoch: 1200/20000, Loss: 0.0023207620251924\n",
      "Epoch: 1210/20000, Loss: 0.0022518015466630\n",
      "Epoch: 1220/20000, Loss: 0.0021856061648577\n",
      "Epoch: 1230/20000, Loss: 0.0021220932248980\n",
      "Epoch: 1240/20000, Loss: 0.0020611907821149\n",
      "Epoch: 1250/20000, Loss: 0.0020028203725815\n",
      "Epoch: 1260/20000, Loss: 0.0019488724647090\n",
      "Epoch: 1270/20000, Loss: 0.0018946670461446\n",
      "Epoch: 1280/20000, Loss: 0.0018423703731969\n",
      "Epoch: 1290/20000, Loss: 0.0017932109767571\n",
      "Epoch: 1300/20000, Loss: 0.0017461210954934\n",
      "Epoch: 1310/20000, Loss: 0.0017008291324601\n",
      "Epoch: 1320/20000, Loss: 0.0016573907341808\n",
      "Epoch: 1330/20000, Loss: 0.0016156604979187\n",
      "Epoch: 1340/20000, Loss: 0.0015755523927510\n",
      "Epoch: 1350/20000, Loss: 0.0015369870234281\n",
      "Epoch: 1360/20000, Loss: 0.0014998820843175\n",
      "Epoch: 1370/20000, Loss: 0.0014641598099843\n",
      "Epoch: 1380/20000, Loss: 0.0014297413872555\n",
      "Epoch: 1390/20000, Loss: 0.0013965470716357\n",
      "Epoch: 1400/20000, Loss: 0.0013645854778588\n",
      "Epoch: 1410/20000, Loss: 0.0013335648691282\n",
      "Epoch: 1420/20000, Loss: 0.0013038037577644\n",
      "Epoch: 1430/20000, Loss: 0.0012749967863783\n",
      "Epoch: 1440/20000, Loss: 0.0012471737572923\n",
      "Epoch: 1450/20000, Loss: 0.0012202707584947\n",
      "Epoch: 1460/20000, Loss: 0.0011941986158490\n",
      "Epoch: 1470/20000, Loss: 0.0011688874801621\n",
      "Epoch: 1480/20000, Loss: 0.0011442414252087\n",
      "Epoch: 1490/20000, Loss: 0.0011204498587176\n",
      "Epoch: 1500/20000, Loss: 0.0010974769247696\n",
      "Epoch: 1510/20000, Loss: 0.0010752448579296\n",
      "Epoch: 1520/20000, Loss: 0.0010537237394601\n",
      "Epoch: 1530/20000, Loss: 0.0010328948264942\n",
      "Epoch: 1540/20000, Loss: 0.0010138462530449\n",
      "Epoch: 1550/20000, Loss: 0.0009941509924829\n",
      "Epoch: 1560/20000, Loss: 0.0009746887371875\n",
      "Epoch: 1570/20000, Loss: 0.0009561158367433\n",
      "Epoch: 1580/20000, Loss: 0.0009382710559294\n",
      "Epoch: 1590/20000, Loss: 0.0009210530552082\n",
      "Epoch: 1600/20000, Loss: 0.0009043362224475\n",
      "Epoch: 1610/20000, Loss: 0.0008881015819497\n",
      "Epoch: 1620/20000, Loss: 0.0008723307400942\n",
      "Epoch: 1630/20000, Loss: 0.0008570029167458\n",
      "Epoch: 1640/20000, Loss: 0.0008420954691246\n",
      "Epoch: 1650/20000, Loss: 0.0008275883155875\n",
      "Epoch: 1660/20000, Loss: 0.0008134644012898\n",
      "Epoch: 1670/20000, Loss: 0.0007997265784070\n",
      "Epoch: 1680/20000, Loss: 0.0007886002422310\n",
      "Epoch: 1690/20000, Loss: 0.0007735147373751\n",
      "Epoch: 1700/20000, Loss: 0.0007608847226948\n",
      "Epoch: 1710/20000, Loss: 0.0007484044181183\n",
      "Epoch: 1720/20000, Loss: 0.0007362744072452\n",
      "Epoch: 1730/20000, Loss: 0.0007245097076520\n",
      "Epoch: 1740/20000, Loss: 0.0007130693411455\n",
      "Epoch: 1750/20000, Loss: 0.0007018874748610\n",
      "Epoch: 1760/20000, Loss: 0.0006909691146575\n",
      "Epoch: 1770/20000, Loss: 0.0006802936550230\n",
      "Epoch: 1780/20000, Loss: 0.0006698502693325\n",
      "Epoch: 1790/20000, Loss: 0.0006596244056709\n",
      "Epoch: 1800/20000, Loss: 0.0006495984853245\n",
      "Epoch: 1810/20000, Loss: 0.0006397463148460\n",
      "Epoch: 1820/20000, Loss: 0.0006300231907517\n",
      "Epoch: 1830/20000, Loss: 0.0006203753873706\n",
      "Epoch: 1840/20000, Loss: 0.0006109441164881\n",
      "Epoch: 1850/20000, Loss: 0.0006018815911375\n",
      "Epoch: 1860/20000, Loss: 0.0005930468323641\n",
      "Epoch: 1870/20000, Loss: 0.0005842540995218\n",
      "Epoch: 1880/20000, Loss: 0.0005749702686444\n",
      "Epoch: 1890/20000, Loss: 0.0005663698539138\n",
      "Epoch: 1900/20000, Loss: 0.0005579125136137\n",
      "Epoch: 1910/20000, Loss: 0.0005495724617504\n",
      "Epoch: 1920/20000, Loss: 0.0005413942271844\n",
      "Epoch: 1930/20000, Loss: 0.0005333498120308\n",
      "Epoch: 1940/20000, Loss: 0.0005254746065475\n",
      "Epoch: 1950/20000, Loss: 0.0005177774582990\n",
      "Epoch: 1960/20000, Loss: 0.0005102361319587\n",
      "Epoch: 1970/20000, Loss: 0.0005028438754380\n",
      "Epoch: 1980/20000, Loss: 0.0004955942276865\n",
      "Epoch: 1990/20000, Loss: 0.0004884817171842\n",
      "Epoch: 2000/20000, Loss: 0.0004817107692361\n",
      "Epoch: 2010/20000, Loss: 0.0004749310028274\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 2020/20000, Loss: 0.0004686535976361\n",
      "Epoch: 2030/20000, Loss: 0.0004616066580638\n",
      "Epoch: 2040/20000, Loss: 0.0004549020377453\n",
      "Epoch: 2050/20000, Loss: 0.0004484553937800\n",
      "Epoch: 2060/20000, Loss: 0.0004421809571795\n",
      "Epoch: 2070/20000, Loss: 0.0004360130114947\n",
      "Epoch: 2080/20000, Loss: 0.0004299433785491\n",
      "Epoch: 2090/20000, Loss: 0.0004239823028911\n",
      "Epoch: 2100/20000, Loss: 0.0004181207332294\n",
      "Epoch: 2110/20000, Loss: 0.0004123584658373\n",
      "Epoch: 2120/20000, Loss: 0.0004066921246704\n",
      "Epoch: 2130/20000, Loss: 0.0004011191776954\n",
      "Epoch: 2140/20000, Loss: 0.0003956370055676\n",
      "Epoch: 2150/20000, Loss: 0.0003902434546035\n",
      "Epoch: 2160/20000, Loss: 0.0003849362256005\n",
      "Epoch: 2170/20000, Loss: 0.0003797135723289\n",
      "Epoch: 2180/20000, Loss: 0.0003745739522856\n",
      "Epoch: 2190/20000, Loss: 0.0003695400082506\n",
      "Epoch: 2200/20000, Loss: 0.0003691661695484\n",
      "Epoch: 2210/20000, Loss: 0.0003596619935706\n",
      "Epoch: 2220/20000, Loss: 0.0003548728709575\n",
      "Epoch: 2230/20000, Loss: 0.0003501392784528\n",
      "Epoch: 2240/20000, Loss: 0.0003454872057773\n",
      "Epoch: 2250/20000, Loss: 0.0003409073397052\n",
      "Epoch: 2260/20000, Loss: 0.0003363889409229\n",
      "Epoch: 2270/20000, Loss: 0.0003319375973660\n",
      "Epoch: 2280/20000, Loss: 0.0003275649214629\n",
      "Epoch: 2290/20000, Loss: 0.0003232590388507\n",
      "Epoch: 2300/20000, Loss: 0.0003190202987753\n",
      "Epoch: 2310/20000, Loss: 0.0003148464893457\n",
      "Epoch: 2320/20000, Loss: 0.0003107367083430\n",
      "Epoch: 2330/20000, Loss: 0.0003066896169912\n",
      "Epoch: 2340/20000, Loss: 0.0003027040802408\n",
      "Epoch: 2350/20000, Loss: 0.0002987789630424\n",
      "Epoch: 2360/20000, Loss: 0.0002949130430352\n",
      "Epoch: 2370/20000, Loss: 0.0002911053597927\n",
      "Epoch: 2380/20000, Loss: 0.0002873823104892\n",
      "Epoch: 2390/20000, Loss: 0.0002882682892960\n",
      "Epoch: 2400/20000, Loss: 0.0002802006201819\n",
      "Epoch: 2410/20000, Loss: 0.0002766721299849\n",
      "Epoch: 2420/20000, Loss: 0.0002730599953793\n",
      "Epoch: 2430/20000, Loss: 0.0002695392759051\n",
      "Epoch: 2440/20000, Loss: 0.0002660795289557\n",
      "Epoch: 2450/20000, Loss: 0.0002626788918860\n",
      "Epoch: 2460/20000, Loss: 0.0002593506360427\n",
      "Epoch: 2470/20000, Loss: 0.0002560761640780\n",
      "Epoch: 2480/20000, Loss: 0.0002528463373892\n",
      "Epoch: 2490/20000, Loss: 0.0002496642700862\n",
      "Epoch: 2500/20000, Loss: 0.0002465279831085\n",
      "Epoch: 2510/20000, Loss: 0.0002434363996144\n",
      "Epoch: 2520/20000, Loss: 0.0002403890684946\n",
      "Epoch: 2530/20000, Loss: 0.0002373852184974\n",
      "Epoch: 2540/20000, Loss: 0.0002344240056118\n",
      "Epoch: 2550/20000, Loss: 0.0002315048477612\n",
      "Epoch: 2560/20000, Loss: 0.0002286278613610\n",
      "Epoch: 2570/20000, Loss: 0.0002259152533952\n",
      "Epoch: 2580/20000, Loss: 0.0002276414597873\n",
      "Epoch: 2590/20000, Loss: 0.0002219442394562\n",
      "Epoch: 2600/20000, Loss: 0.0002180748851970\n",
      "Epoch: 2610/20000, Loss: 0.0002150467626052\n",
      "Epoch: 2620/20000, Loss: 0.0002122822479578\n",
      "Epoch: 2630/20000, Loss: 0.0002096446696669\n",
      "Epoch: 2640/20000, Loss: 0.0002070846676361\n",
      "Epoch: 2650/20000, Loss: 0.0002045614237431\n",
      "Epoch: 2660/20000, Loss: 0.0002020688698394\n",
      "Epoch: 2670/20000, Loss: 0.0001996151258936\n",
      "Epoch: 2680/20000, Loss: 0.0001971967285499\n",
      "Epoch: 2690/20000, Loss: 0.0001948161370819\n",
      "Epoch: 2700/20000, Loss: 0.0001925539399963\n",
      "Epoch: 2710/20000, Loss: 0.0001932163722813\n",
      "Epoch: 2720/20000, Loss: 0.0001879691262729\n",
      "Epoch: 2730/20000, Loss: 0.0001865569793154\n",
      "Epoch: 2740/20000, Loss: 0.0001835473376559\n",
      "Epoch: 2750/20000, Loss: 0.0001814850256778\n",
      "Epoch: 2760/20000, Loss: 0.0001792719849618\n",
      "Epoch: 2770/20000, Loss: 0.0001771659008227\n",
      "Epoch: 2780/20000, Loss: 0.0001751063973643\n",
      "Epoch: 2790/20000, Loss: 0.0001730768999550\n",
      "Epoch: 2800/20000, Loss: 0.0001710791984806\n",
      "Epoch: 2810/20000, Loss: 0.0001691127836239\n",
      "Epoch: 2820/20000, Loss: 0.0001671766221989\n",
      "Epoch: 2830/20000, Loss: 0.0001652695500525\n",
      "Epoch: 2840/20000, Loss: 0.0001633911742829\n",
      "Epoch: 2850/20000, Loss: 0.0001615404908080\n",
      "Epoch: 2860/20000, Loss: 0.0001597166119609\n",
      "Epoch: 2870/20000, Loss: 0.0001579186646268\n",
      "Epoch: 2880/20000, Loss: 0.0001561477547511\n",
      "Epoch: 2890/20000, Loss: 0.0001665225136094\n",
      "Epoch: 2900/20000, Loss: 0.0001565208513057\n",
      "Epoch: 2910/20000, Loss: 0.0001525935513200\n",
      "Epoch: 2920/20000, Loss: 0.0001496629702160\n",
      "Epoch: 2930/20000, Loss: 0.0001478047779528\n",
      "Epoch: 2940/20000, Loss: 0.0001462288346374\n",
      "Epoch: 2950/20000, Loss: 0.0001446359528927\n",
      "Epoch: 2960/20000, Loss: 0.0001430512929801\n",
      "Epoch: 2970/20000, Loss: 0.0001415176375303\n",
      "Epoch: 2980/20000, Loss: 0.0001400026085321\n",
      "Epoch: 2990/20000, Loss: 0.0001385123323416\n",
      "Epoch: 3000/20000, Loss: 0.0001370456448058\n",
      "Epoch: 3010/20000, Loss: 0.0001356026477879\n",
      "Epoch: 3020/20000, Loss: 0.0001341827301076\n",
      "Epoch: 3030/20000, Loss: 0.0001330258528469\n",
      "Epoch: 3040/20000, Loss: 0.0001316766283708\n",
      "Epoch: 3050/20000, Loss: 0.0001301953161601\n",
      "Epoch: 3060/20000, Loss: 0.0001288301282329\n",
      "Epoch: 3070/20000, Loss: 0.0001274092355743\n",
      "Epoch: 3080/20000, Loss: 0.0001261238503503\n",
      "Epoch: 3090/20000, Loss: 0.0001248394255526\n",
      "Epoch: 3100/20000, Loss: 0.0001235752715729\n",
      "Epoch: 3110/20000, Loss: 0.0001223294966621\n",
      "Epoch: 3120/20000, Loss: 0.0001211094349856\n",
      "Epoch: 3130/20000, Loss: 0.0001202255007229\n",
      "Epoch: 3140/20000, Loss: 0.0001194790893351\n",
      "Epoch: 3150/20000, Loss: 0.0001186209992738\n",
      "Epoch: 3160/20000, Loss: 0.0001168339440483\n",
      "Epoch: 3170/20000, Loss: 0.0001154477868113\n",
      "Epoch: 3180/20000, Loss: 0.0001142158216680\n",
      "Epoch: 3190/20000, Loss: 0.0001130562523031\n",
      "Epoch: 3200/20000, Loss: 0.0001119694934459\n",
      "Epoch: 3210/20000, Loss: 0.0001108833603212\n",
      "Epoch: 3220/20000, Loss: 0.0001098220527638\n",
      "Epoch: 3230/20000, Loss: 0.0001088975768653\n",
      "Epoch: 3240/20000, Loss: 0.0001079100838979\n",
      "Epoch: 3250/20000, Loss: 0.0001068031560862\n",
      "Epoch: 3260/20000, Loss: 0.0001058145935531\n",
      "Epoch: 3270/20000, Loss: 0.0001048686463037\n",
      "Epoch: 3280/20000, Loss: 0.0001038466070895\n",
      "Epoch: 3290/20000, Loss: 0.0001028457627399\n",
      "Epoch: 3300/20000, Loss: 0.0001018743569148\n",
      "Epoch: 3310/20000, Loss: 0.0001009241968859\n",
      "Epoch: 3320/20000, Loss: 0.0000999886178761\n",
      "Epoch: 3330/20000, Loss: 0.0000990587941487\n",
      "Epoch: 3340/20000, Loss: 0.0000981347693596\n",
      "Epoch: 3350/20000, Loss: 0.0000972104899120\n",
      "Epoch: 3360/20000, Loss: 0.0000962764606811\n",
      "Epoch: 3370/20000, Loss: 0.0000953120106715\n",
      "Epoch: 3380/20000, Loss: 0.0000942826445680\n",
      "Epoch: 3390/20000, Loss: 0.0000932465336518\n",
      "Epoch: 3400/20000, Loss: 0.0001057292902260\n",
      "Epoch: 3410/20000, Loss: 0.0000958758319030\n",
      "Epoch: 3420/20000, Loss: 0.0000906791319721\n",
      "Epoch: 3430/20000, Loss: 0.0000902903484530\n",
      "Epoch: 3440/20000, Loss: 0.0000888653521542\n",
      "Epoch: 3450/20000, Loss: 0.0000880199368112\n",
      "Epoch: 3460/20000, Loss: 0.0000871755473781\n",
      "Epoch: 3470/20000, Loss: 0.0000863634340931\n",
      "Epoch: 3480/20000, Loss: 0.0000855632752064\n",
      "Epoch: 3490/20000, Loss: 0.0000847802948556\n",
      "Epoch: 3500/20000, Loss: 0.0000840038992465\n",
      "Epoch: 3510/20000, Loss: 0.0000832384976093\n",
      "Epoch: 3520/20000, Loss: 0.0000830905337352\n",
      "Epoch: 3530/20000, Loss: 0.0000820398636279\n",
      "Epoch: 3540/20000, Loss: 0.0000811446734588\n",
      "Epoch: 3550/20000, Loss: 0.0000803393704700\n",
      "Epoch: 3560/20000, Loss: 0.0000795831801952\n",
      "Epoch: 3570/20000, Loss: 0.0000788801189628\n",
      "Epoch: 3580/20000, Loss: 0.0000781730705057\n",
      "Epoch: 3590/20000, Loss: 0.0000774797081249\n",
      "Epoch: 3600/20000, Loss: 0.0000768206373323\n",
      "Epoch: 3610/20000, Loss: 0.0000786115269875\n",
      "Epoch: 3620/20000, Loss: 0.0000756542649469\n",
      "Epoch: 3630/20000, Loss: 0.0000750070030335\n",
      "Epoch: 3640/20000, Loss: 0.0000741653930163\n",
      "Epoch: 3650/20000, Loss: 0.0000734915738576\n",
      "Epoch: 3660/20000, Loss: 0.0000728492668713\n",
      "Epoch: 3670/20000, Loss: 0.0000722017648513\n",
      "Epoch: 3680/20000, Loss: 0.0000715629212209\n",
      "Epoch: 3690/20000, Loss: 0.0000709358791937\n",
      "Epoch: 3700/20000, Loss: 0.0000703158948454\n",
      "Epoch: 3710/20000, Loss: 0.0000698193689459\n",
      "Epoch: 3720/20000, Loss: 0.0000773520223447\n",
      "Epoch: 3730/20000, Loss: 0.0000685257982695\n",
      "Epoch: 3740/20000, Loss: 0.0000680922021274\n",
      "Epoch: 3750/20000, Loss: 0.0000675284609315\n",
      "Epoch: 3760/20000, Loss: 0.0000668838256388\n",
      "Epoch: 3770/20000, Loss: 0.0000662338061375\n",
      "Epoch: 3780/20000, Loss: 0.0000656536431052\n",
      "Epoch: 3790/20000, Loss: 0.0000651037116768\n",
      "Epoch: 3800/20000, Loss: 0.0000645508480375\n",
      "Epoch: 3810/20000, Loss: 0.0000640090365778\n",
      "Epoch: 3820/20000, Loss: 0.0000634729221929\n",
      "Epoch: 3830/20000, Loss: 0.0000629423375358\n",
      "Epoch: 3840/20000, Loss: 0.0000624173771939\n",
      "Epoch: 3850/20000, Loss: 0.0000618978010607\n",
      "Epoch: 3860/20000, Loss: 0.0000613835654804\n",
      "Epoch: 3870/20000, Loss: 0.0000608746049693\n",
      "Epoch: 3880/20000, Loss: 0.0000603746084380\n",
      "Epoch: 3890/20000, Loss: 0.0000604504748480\n",
      "Epoch: 3900/20000, Loss: 0.0000609979106230\n",
      "Epoch: 3910/20000, Loss: 0.0000606508037890\n",
      "Epoch: 3920/20000, Loss: 0.0000589566152485\n",
      "Epoch: 3930/20000, Loss: 0.0000581024323765\n",
      "Epoch: 3940/20000, Loss: 0.0000575396370550\n",
      "Epoch: 3950/20000, Loss: 0.0000570474148844\n",
      "Epoch: 3960/20000, Loss: 0.0000565716400160\n",
      "Epoch: 3970/20000, Loss: 0.0000561024280614\n",
      "Epoch: 3980/20000, Loss: 0.0000556431805308\n",
      "Epoch: 3990/20000, Loss: 0.0000551929806534\n",
      "Epoch: 4000/20000, Loss: 0.0000547458403162\n",
      "Epoch: 4010/20000, Loss: 0.0000543032838323\n",
      "Epoch: 4020/20000, Loss: 0.0000538645617780\n",
      "Epoch: 4030/20000, Loss: 0.0000534298451385\n",
      "Epoch: 4040/20000, Loss: 0.0000529989993083\n",
      "Epoch: 4050/20000, Loss: 0.0000525718860445\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 4060/20000, Loss: 0.0000521485599165\n",
      "Epoch: 4070/20000, Loss: 0.0000517288863193\n",
      "Epoch: 4080/20000, Loss: 0.0000513128215971\n",
      "Epoch: 4090/20000, Loss: 0.0000509003548359\n",
      "Epoch: 4100/20000, Loss: 0.0000504917079525\n",
      "Epoch: 4110/20000, Loss: 0.0000501315334986\n",
      "Epoch: 4120/20000, Loss: 0.0000600698513153\n",
      "Epoch: 4130/20000, Loss: 0.0000499347224832\n",
      "Epoch: 4140/20000, Loss: 0.0000489288395329\n",
      "Epoch: 4150/20000, Loss: 0.0000486599674332\n",
      "Epoch: 4160/20000, Loss: 0.0000482952382299\n",
      "Epoch: 4170/20000, Loss: 0.0000478367001051\n",
      "Epoch: 4180/20000, Loss: 0.0000474102562293\n",
      "Epoch: 4190/20000, Loss: 0.0000470144477731\n",
      "Epoch: 4200/20000, Loss: 0.0000466332130600\n",
      "Epoch: 4210/20000, Loss: 0.0000462596944999\n",
      "Epoch: 4220/20000, Loss: 0.0000458913273178\n",
      "Epoch: 4230/20000, Loss: 0.0000455263143522\n",
      "Epoch: 4240/20000, Loss: 0.0000451638879895\n",
      "Epoch: 4250/20000, Loss: 0.0000448044193035\n",
      "Epoch: 4260/20000, Loss: 0.0000444477773272\n",
      "Epoch: 4270/20000, Loss: 0.0000440939911641\n",
      "Epoch: 4280/20000, Loss: 0.0000437430026068\n",
      "Epoch: 4290/20000, Loss: 0.0000433948443970\n",
      "Epoch: 4300/20000, Loss: 0.0000430494292232\n",
      "Epoch: 4310/20000, Loss: 0.0000427067861892\n",
      "Epoch: 4320/20000, Loss: 0.0000423668971052\n",
      "Epoch: 4330/20000, Loss: 0.0000420296673838\n",
      "Epoch: 4340/20000, Loss: 0.0000416951261286\n",
      "Epoch: 4350/20000, Loss: 0.0000413632114942\n",
      "Epoch: 4360/20000, Loss: 0.0000410339598602\n",
      "Epoch: 4370/20000, Loss: 0.0000407160950999\n",
      "Epoch: 4380/20000, Loss: 0.0000436868031102\n",
      "Epoch: 4390/20000, Loss: 0.0000482754367113\n",
      "Epoch: 4400/20000, Loss: 0.0000426176629844\n",
      "Epoch: 4410/20000, Loss: 0.0000399056989409\n",
      "Epoch: 4420/20000, Loss: 0.0000391463363485\n",
      "Epoch: 4430/20000, Loss: 0.0000388943190046\n",
      "Epoch: 4440/20000, Loss: 0.0000385690727853\n",
      "Epoch: 4450/20000, Loss: 0.0000382385987905\n",
      "Epoch: 4460/20000, Loss: 0.0000379253542633\n",
      "Epoch: 4470/20000, Loss: 0.0000376216521545\n",
      "Epoch: 4480/20000, Loss: 0.0000373226976080\n",
      "Epoch: 4490/20000, Loss: 0.0000370269408450\n",
      "Epoch: 4500/20000, Loss: 0.0000367339634977\n",
      "Epoch: 4510/20000, Loss: 0.0000364434235962\n",
      "Epoch: 4520/20000, Loss: 0.0000361550737580\n",
      "Epoch: 4530/20000, Loss: 0.0000358689685527\n",
      "Epoch: 4540/20000, Loss: 0.0000355850970664\n",
      "Epoch: 4550/20000, Loss: 0.0000353034301952\n",
      "Epoch: 4560/20000, Loss: 0.0000350239060936\n",
      "Epoch: 4570/20000, Loss: 0.0000347465538653\n",
      "Epoch: 4580/20000, Loss: 0.0000344713444065\n",
      "Epoch: 4590/20000, Loss: 0.0000341982668033\n",
      "Epoch: 4600/20000, Loss: 0.0000339272810379\n",
      "Epoch: 4610/20000, Loss: 0.0000336584162142\n",
      "Epoch: 4620/20000, Loss: 0.0000333916323143\n",
      "Epoch: 4630/20000, Loss: 0.0000331268893206\n",
      "Epoch: 4640/20000, Loss: 0.0000328642236127\n",
      "Epoch: 4650/20000, Loss: 0.0000326036242768\n",
      "Epoch: 4660/20000, Loss: 0.0000323485655827\n",
      "Epoch: 4670/20000, Loss: 0.0000332166382577\n",
      "Epoch: 4680/20000, Loss: 0.0000322020969179\n",
      "Epoch: 4690/20000, Loss: 0.0000317167323374\n",
      "Epoch: 4700/20000, Loss: 0.0000319675054925\n",
      "Epoch: 4710/20000, Loss: 0.0000315521574521\n",
      "Epoch: 4720/20000, Loss: 0.0000310000723402\n",
      "Epoch: 4730/20000, Loss: 0.0000306472211378\n",
      "Epoch: 4740/20000, Loss: 0.0000303832784994\n",
      "Epoch: 4750/20000, Loss: 0.0000301399613818\n",
      "Epoch: 4760/20000, Loss: 0.0000299017447105\n",
      "Epoch: 4770/20000, Loss: 0.0000296658654406\n",
      "Epoch: 4780/20000, Loss: 0.0000294318069791\n",
      "Epoch: 4790/20000, Loss: 0.0000291997457680\n",
      "Epoch: 4800/20000, Loss: 0.0000289697818516\n",
      "Epoch: 4810/20000, Loss: 0.0000287417042273\n",
      "Epoch: 4820/20000, Loss: 0.0000285153928417\n",
      "Epoch: 4830/20000, Loss: 0.0000282909149973\n",
      "Epoch: 4840/20000, Loss: 0.0000280681942968\n",
      "Epoch: 4850/20000, Loss: 0.0000278472525679\n",
      "Epoch: 4860/20000, Loss: 0.0000276280643448\n",
      "Epoch: 4870/20000, Loss: 0.0000274106423603\n",
      "Epoch: 4880/20000, Loss: 0.0000271949575108\n",
      "Epoch: 4890/20000, Loss: 0.0000269809897873\n",
      "Epoch: 4900/20000, Loss: 0.0000267687482847\n",
      "Epoch: 4910/20000, Loss: 0.0000265582166321\n",
      "Epoch: 4920/20000, Loss: 0.0000263493784587\n",
      "Epoch: 4930/20000, Loss: 0.0000261422283074\n",
      "Epoch: 4940/20000, Loss: 0.0000259368262050\n",
      "Epoch: 4950/20000, Loss: 0.0000257434476225\n",
      "Epoch: 4960/20000, Loss: 0.0000283095123450\n",
      "Epoch: 4970/20000, Loss: 0.0000307063637592\n",
      "Epoch: 4980/20000, Loss: 0.0000265412163571\n",
      "Epoch: 4990/20000, Loss: 0.0000257511037489\n",
      "Epoch: 5000/20000, Loss: 0.0000251204728556\n",
      "Epoch: 5010/20000, Loss: 0.0000247008010774\n",
      "Epoch: 5020/20000, Loss: 0.0000244232523983\n",
      "Epoch: 5030/20000, Loss: 0.0000242023688770\n",
      "Epoch: 5040/20000, Loss: 0.0000240019689954\n",
      "Epoch: 5050/20000, Loss: 0.0000238109951169\n",
      "Epoch: 5060/20000, Loss: 0.0000236255018535\n",
      "Epoch: 5070/20000, Loss: 0.0000234423823713\n",
      "Epoch: 5080/20000, Loss: 0.0000232603088079\n",
      "Epoch: 5090/20000, Loss: 0.0000230799778365\n",
      "Epoch: 5100/20000, Loss: 0.0000229011711781\n",
      "Epoch: 5110/20000, Loss: 0.0000227238760999\n",
      "Epoch: 5120/20000, Loss: 0.0000225480689551\n",
      "Epoch: 5130/20000, Loss: 0.0000223737351916\n",
      "Epoch: 5140/20000, Loss: 0.0000222008802666\n",
      "Epoch: 5150/20000, Loss: 0.0000220294823521\n",
      "Epoch: 5160/20000, Loss: 0.0000218595359911\n",
      "Epoch: 5170/20000, Loss: 0.0000216910302697\n",
      "Epoch: 5180/20000, Loss: 0.0000215239597310\n",
      "Epoch: 5190/20000, Loss: 0.0000213583280129\n",
      "Epoch: 5200/20000, Loss: 0.0000211940860027\n",
      "Epoch: 5210/20000, Loss: 0.0000210312518902\n",
      "Epoch: 5220/20000, Loss: 0.0000208709934668\n",
      "Epoch: 5230/20000, Loss: 0.0000209486370295\n",
      "Epoch: 5240/20000, Loss: 0.0000362059799954\n",
      "Epoch: 5250/20000, Loss: 0.0000243194881477\n",
      "Epoch: 5260/20000, Loss: 0.0000218274180952\n",
      "Epoch: 5270/20000, Loss: 0.0000207065695577\n",
      "Epoch: 5280/20000, Loss: 0.0000201481598197\n",
      "Epoch: 5290/20000, Loss: 0.0000198648885998\n",
      "Epoch: 5300/20000, Loss: 0.0000196738019440\n",
      "Epoch: 5310/20000, Loss: 0.0000195097945834\n",
      "Epoch: 5320/20000, Loss: 0.0000193554278667\n",
      "Epoch: 5330/20000, Loss: 0.0000192068746401\n",
      "Epoch: 5340/20000, Loss: 0.0000190622795344\n",
      "Epoch: 5350/20000, Loss: 0.0000189191414393\n",
      "Epoch: 5360/20000, Loss: 0.0000187770510820\n",
      "Epoch: 5370/20000, Loss: 0.0000186363995454\n",
      "Epoch: 5380/20000, Loss: 0.0000184969339898\n",
      "Epoch: 5390/20000, Loss: 0.0000183587308129\n",
      "Epoch: 5400/20000, Loss: 0.0000182217627298\n",
      "Epoch: 5410/20000, Loss: 0.0000180859951797\n",
      "Epoch: 5420/20000, Loss: 0.0000179514408956\n",
      "Epoch: 5430/20000, Loss: 0.0000178180907824\n",
      "Epoch: 5440/20000, Loss: 0.0000176858957275\n",
      "Epoch: 5450/20000, Loss: 0.0000175549030246\n",
      "Epoch: 5460/20000, Loss: 0.0000174250562850\n",
      "Epoch: 5470/20000, Loss: 0.0000172963991645\n",
      "Epoch: 5480/20000, Loss: 0.0000171688698174\n",
      "Epoch: 5490/20000, Loss: 0.0000170425282704\n",
      "Epoch: 5500/20000, Loss: 0.0000169214436028\n",
      "Epoch: 5510/20000, Loss: 0.0000179014296009\n",
      "Epoch: 5520/20000, Loss: 0.0000167307098309\n",
      "Epoch: 5530/20000, Loss: 0.0000168716105691\n",
      "Epoch: 5540/20000, Loss: 0.0000164557168318\n",
      "Epoch: 5550/20000, Loss: 0.0000164246303029\n",
      "Epoch: 5560/20000, Loss: 0.0000162908600032\n",
      "Epoch: 5570/20000, Loss: 0.0000161285624927\n",
      "Epoch: 5580/20000, Loss: 0.0000159870796779\n",
      "Epoch: 5590/20000, Loss: 0.0000158621860464\n",
      "Epoch: 5600/20000, Loss: 0.0000157459180627\n",
      "Epoch: 5610/20000, Loss: 0.0000156334208441\n",
      "Epoch: 5620/20000, Loss: 0.0000155219440785\n",
      "Epoch: 5630/20000, Loss: 0.0000154110421136\n",
      "Epoch: 5640/20000, Loss: 0.0000153014407260\n",
      "Epoch: 5650/20000, Loss: 0.0000151928807099\n",
      "Epoch: 5660/20000, Loss: 0.0000150852920342\n",
      "Epoch: 5670/20000, Loss: 0.0000149786992552\n",
      "Epoch: 5680/20000, Loss: 0.0000148730914589\n",
      "Epoch: 5690/20000, Loss: 0.0000147684404510\n",
      "Epoch: 5700/20000, Loss: 0.0000146647262227\n",
      "Epoch: 5710/20000, Loss: 0.0000145619715113\n",
      "Epoch: 5720/20000, Loss: 0.0000144601535794\n",
      "Epoch: 5730/20000, Loss: 0.0000143592451423\n",
      "Epoch: 5740/20000, Loss: 0.0000142592571137\n",
      "Epoch: 5750/20000, Loss: 0.0000141601949508\n",
      "Epoch: 5760/20000, Loss: 0.0000140620231832\n",
      "Epoch: 5770/20000, Loss: 0.0000139648636832\n",
      "Epoch: 5780/20000, Loss: 0.0000138783070724\n",
      "Epoch: 5790/20000, Loss: 0.0000156589212565\n",
      "Epoch: 5800/20000, Loss: 0.0000144529358295\n",
      "Epoch: 5810/20000, Loss: 0.0000138168334161\n",
      "Epoch: 5820/20000, Loss: 0.0000136330281748\n",
      "Epoch: 5830/20000, Loss: 0.0000134760884976\n",
      "Epoch: 5840/20000, Loss: 0.0000133682970045\n",
      "Epoch: 5850/20000, Loss: 0.0000132683271659\n",
      "Epoch: 5860/20000, Loss: 0.0000131631368276\n",
      "Epoch: 5870/20000, Loss: 0.0000130597509269\n",
      "Epoch: 5880/20000, Loss: 0.0000129683867272\n",
      "Epoch: 5890/20000, Loss: 0.0000128825449792\n",
      "Epoch: 5900/20000, Loss: 0.0000127958592202\n",
      "Epoch: 5910/20000, Loss: 0.0000127108924062\n",
      "Epoch: 5920/20000, Loss: 0.0000126264912979\n",
      "Epoch: 5930/20000, Loss: 0.0000125430069602\n",
      "Epoch: 5940/20000, Loss: 0.0000124602693177\n",
      "Epoch: 5950/20000, Loss: 0.0000123782683659\n",
      "Epoch: 5960/20000, Loss: 0.0000122970359371\n",
      "Epoch: 5970/20000, Loss: 0.0000122165374705\n",
      "Epoch: 5980/20000, Loss: 0.0000121367511383\n",
      "Epoch: 5990/20000, Loss: 0.0000120576887639\n",
      "Epoch: 6000/20000, Loss: 0.0000119793430713\n",
      "Epoch: 6010/20000, Loss: 0.0000119017131510\n",
      "Epoch: 6020/20000, Loss: 0.0000118247817227\n",
      "Epoch: 6030/20000, Loss: 0.0000117485860756\n",
      "Epoch: 6040/20000, Loss: 0.0000116813589557\n",
      "Epoch: 6050/20000, Loss: 0.0000139671901707\n",
      "Epoch: 6060/20000, Loss: 0.0000154638419190\n",
      "Epoch: 6070/20000, Loss: 0.0000123951194837\n",
      "Epoch: 6080/20000, Loss: 0.0000121474904518\n",
      "Epoch: 6090/20000, Loss: 0.0000117295630844\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 6100/20000, Loss: 0.0000114110589493\n",
      "Epoch: 6110/20000, Loss: 0.0000112374718810\n",
      "Epoch: 6120/20000, Loss: 0.0000111306071631\n",
      "Epoch: 6130/20000, Loss: 0.0000110472938104\n",
      "Epoch: 6140/20000, Loss: 0.0000109731472548\n",
      "Epoch: 6150/20000, Loss: 0.0000109037209768\n",
      "Epoch: 6160/20000, Loss: 0.0000108365056803\n",
      "Epoch: 6170/20000, Loss: 0.0000107697151179\n",
      "Epoch: 6180/20000, Loss: 0.0000107034502435\n",
      "Epoch: 6190/20000, Loss: 0.0000106379411591\n",
      "Epoch: 6200/20000, Loss: 0.0000105729841380\n",
      "Epoch: 6210/20000, Loss: 0.0000105085991891\n",
      "Epoch: 6220/20000, Loss: 0.0000104447926788\n",
      "Epoch: 6230/20000, Loss: 0.0000103815673356\n",
      "Epoch: 6240/20000, Loss: 0.0000103188895082\n",
      "Epoch: 6250/20000, Loss: 0.0000102567619251\n",
      "Epoch: 6260/20000, Loss: 0.0000101951864053\n",
      "Epoch: 6270/20000, Loss: 0.0000101341493064\n",
      "Epoch: 6280/20000, Loss: 0.0000100736506283\n",
      "Epoch: 6290/20000, Loss: 0.0000100136740002\n",
      "Epoch: 6300/20000, Loss: 0.0000099542285170\n",
      "Epoch: 6310/20000, Loss: 0.0000098953496490\n",
      "Epoch: 6320/20000, Loss: 0.0000098416976471\n",
      "Epoch: 6330/20000, Loss: 0.0000106424995465\n",
      "Epoch: 6340/20000, Loss: 0.0000123347972476\n",
      "Epoch: 6350/20000, Loss: 0.0000128156943902\n",
      "Epoch: 6360/20000, Loss: 0.0000107798405224\n",
      "Epoch: 6370/20000, Loss: 0.0000099845246950\n",
      "Epoch: 6380/20000, Loss: 0.0000096753101388\n",
      "Epoch: 6390/20000, Loss: 0.0000095197319752\n",
      "Epoch: 6400/20000, Loss: 0.0000094191145763\n",
      "Epoch: 6410/20000, Loss: 0.0000093490189101\n",
      "Epoch: 6420/20000, Loss: 0.0000092955497166\n",
      "Epoch: 6430/20000, Loss: 0.0000092430036602\n",
      "Epoch: 6440/20000, Loss: 0.0000091895935839\n",
      "Epoch: 6450/20000, Loss: 0.0000091378906291\n",
      "Epoch: 6460/20000, Loss: 0.0000090863377409\n",
      "Epoch: 6470/20000, Loss: 0.0000090353942142\n",
      "Epoch: 6480/20000, Loss: 0.0000089848745120\n",
      "Epoch: 6490/20000, Loss: 0.0000089347895482\n",
      "Epoch: 6500/20000, Loss: 0.0000088851375040\n",
      "Epoch: 6510/20000, Loss: 0.0000088359092842\n",
      "Epoch: 6520/20000, Loss: 0.0000087870848802\n",
      "Epoch: 6530/20000, Loss: 0.0000087386788437\n",
      "Epoch: 6540/20000, Loss: 0.0000086906784418\n",
      "Epoch: 6550/20000, Loss: 0.0000086430845840\n",
      "Epoch: 6560/20000, Loss: 0.0000085958763520\n",
      "Epoch: 6570/20000, Loss: 0.0000085491628852\n",
      "Epoch: 6580/20000, Loss: 0.0000085100828073\n",
      "Epoch: 6590/20000, Loss: 0.0000098107584563\n",
      "Epoch: 6600/20000, Loss: 0.0000085431202024\n",
      "Epoch: 6610/20000, Loss: 0.0000099019980553\n",
      "Epoch: 6620/20000, Loss: 0.0000089791947175\n",
      "Epoch: 6630/20000, Loss: 0.0000085475548985\n",
      "Epoch: 6640/20000, Loss: 0.0000083669865489\n",
      "Epoch: 6650/20000, Loss: 0.0000082591623141\n",
      "Epoch: 6660/20000, Loss: 0.0000081767984739\n",
      "Epoch: 6670/20000, Loss: 0.0000081166999735\n",
      "Epoch: 6680/20000, Loss: 0.0000080735062511\n",
      "Epoch: 6690/20000, Loss: 0.0000080315858213\n",
      "Epoch: 6700/20000, Loss: 0.0000079887749962\n",
      "Epoch: 6710/20000, Loss: 0.0000079474548329\n",
      "Epoch: 6720/20000, Loss: 0.0000079062228906\n",
      "Epoch: 6730/20000, Loss: 0.0000078654402387\n",
      "Epoch: 6740/20000, Loss: 0.0000078250168372\n",
      "Epoch: 6750/20000, Loss: 0.0000077848935689\n",
      "Epoch: 6760/20000, Loss: 0.0000077451113611\n",
      "Epoch: 6770/20000, Loss: 0.0000077056365626\n",
      "Epoch: 6780/20000, Loss: 0.0000076664737207\n",
      "Epoch: 6790/20000, Loss: 0.0000076276219261\n",
      "Epoch: 6800/20000, Loss: 0.0000075890743574\n",
      "Epoch: 6810/20000, Loss: 0.0000075508201007\n",
      "Epoch: 6820/20000, Loss: 0.0000075128755270\n",
      "Epoch: 6830/20000, Loss: 0.0000074754530033\n",
      "Epoch: 6840/20000, Loss: 0.0000074619192674\n",
      "Epoch: 6850/20000, Loss: 0.0000119979740703\n",
      "Epoch: 6860/20000, Loss: 0.0000148354156408\n",
      "Epoch: 6870/20000, Loss: 0.0000087034013632\n",
      "Epoch: 6880/20000, Loss: 0.0000077235645222\n",
      "Epoch: 6890/20000, Loss: 0.0000073898818300\n",
      "Epoch: 6900/20000, Loss: 0.0000072518773777\n",
      "Epoch: 6910/20000, Loss: 0.0000071971953730\n",
      "Epoch: 6920/20000, Loss: 0.0000071674940045\n",
      "Epoch: 6930/20000, Loss: 0.0000071330755418\n",
      "Epoch: 6940/20000, Loss: 0.0000070934697760\n",
      "Epoch: 6950/20000, Loss: 0.0000070585128924\n",
      "Epoch: 6960/20000, Loss: 0.0000070245905590\n",
      "Epoch: 6970/20000, Loss: 0.0000069906809586\n",
      "Epoch: 6980/20000, Loss: 0.0000069572538450\n",
      "Epoch: 6990/20000, Loss: 0.0000069240663834\n",
      "Epoch: 7000/20000, Loss: 0.0000068911208473\n",
      "Epoch: 7010/20000, Loss: 0.0000068584208748\n",
      "Epoch: 7020/20000, Loss: 0.0000068259637374\n",
      "Epoch: 7030/20000, Loss: 0.0000067937116910\n",
      "Epoch: 7040/20000, Loss: 0.0000067617115747\n",
      "Epoch: 7050/20000, Loss: 0.0000067299220063\n",
      "Epoch: 7060/20000, Loss: 0.0000066983370743\n",
      "Epoch: 7070/20000, Loss: 0.0000066669617809\n",
      "Epoch: 7080/20000, Loss: 0.0000066358015829\n",
      "Epoch: 7090/20000, Loss: 0.0000066049278757\n",
      "Epoch: 7100/20000, Loss: 0.0000065889880716\n",
      "Epoch: 7110/20000, Loss: 0.0000106879570012\n",
      "Epoch: 7120/20000, Loss: 0.0000156066416821\n",
      "Epoch: 7130/20000, Loss: 0.0000093263679446\n",
      "Epoch: 7140/20000, Loss: 0.0000076560936577\n",
      "Epoch: 7150/20000, Loss: 0.0000068418162300\n",
      "Epoch: 7160/20000, Loss: 0.0000065341032496\n",
      "Epoch: 7170/20000, Loss: 0.0000064231758188\n",
      "Epoch: 7180/20000, Loss: 0.0000063683291955\n",
      "Epoch: 7190/20000, Loss: 0.0000063289462560\n",
      "Epoch: 7200/20000, Loss: 0.0000062951476139\n",
      "Epoch: 7210/20000, Loss: 0.0000062649664869\n",
      "Epoch: 7220/20000, Loss: 0.0000062368344516\n",
      "Epoch: 7230/20000, Loss: 0.0000062088461164\n",
      "Epoch: 7240/20000, Loss: 0.0000061809537328\n",
      "Epoch: 7250/20000, Loss: 0.0000061533787630\n",
      "Epoch: 7260/20000, Loss: 0.0000061259579525\n",
      "Epoch: 7270/20000, Loss: 0.0000060987254074\n",
      "Epoch: 7280/20000, Loss: 0.0000060716574808\n",
      "Epoch: 7290/20000, Loss: 0.0000060447687247\n",
      "Epoch: 7300/20000, Loss: 0.0000060180354922\n",
      "Epoch: 7310/20000, Loss: 0.0000059914664234\n",
      "Epoch: 7320/20000, Loss: 0.0000059650569710\n",
      "Epoch: 7330/20000, Loss: 0.0000059387984948\n",
      "Epoch: 7340/20000, Loss: 0.0000059126987253\n",
      "Epoch: 7350/20000, Loss: 0.0000058867472035\n",
      "Epoch: 7360/20000, Loss: 0.0000058609471125\n",
      "Epoch: 7370/20000, Loss: 0.0000058353380155\n",
      "Epoch: 7380/20000, Loss: 0.0000058145228650\n",
      "Epoch: 7390/20000, Loss: 0.0000066450711529\n",
      "Epoch: 7400/20000, Loss: 0.0000091060674094\n",
      "Epoch: 7410/20000, Loss: 0.0000090688927230\n",
      "Epoch: 7420/20000, Loss: 0.0000068724998528\n",
      "Epoch: 7430/20000, Loss: 0.0000060858310462\n",
      "Epoch: 7440/20000, Loss: 0.0000058220557548\n",
      "Epoch: 7450/20000, Loss: 0.0000057119727899\n",
      "Epoch: 7460/20000, Loss: 0.0000056472813412\n",
      "Epoch: 7470/20000, Loss: 0.0000056035687521\n",
      "Epoch: 7480/20000, Loss: 0.0000055750433603\n",
      "Epoch: 7490/20000, Loss: 0.0000055519535636\n",
      "Epoch: 7500/20000, Loss: 0.0000055274399529\n",
      "Epoch: 7510/20000, Loss: 0.0000055036125559\n",
      "Epoch: 7520/20000, Loss: 0.0000054800370890\n",
      "Epoch: 7530/20000, Loss: 0.0000054566216932\n",
      "Epoch: 7540/20000, Loss: 0.0000054333168009\n",
      "Epoch: 7550/20000, Loss: 0.0000054101369642\n",
      "Epoch: 7560/20000, Loss: 0.0000053870894590\n",
      "Epoch: 7570/20000, Loss: 0.0000053641556406\n",
      "Epoch: 7580/20000, Loss: 0.0000053413327805\n",
      "Epoch: 7590/20000, Loss: 0.0000053186054174\n",
      "Epoch: 7600/20000, Loss: 0.0000052959885579\n",
      "Epoch: 7610/20000, Loss: 0.0000052734767451\n",
      "Epoch: 7620/20000, Loss: 0.0000052510654314\n",
      "Epoch: 7630/20000, Loss: 0.0000052287809922\n",
      "Epoch: 7640/20000, Loss: 0.0000052078248700\n",
      "Epoch: 7650/20000, Loss: 0.0000053539902183\n",
      "Epoch: 7660/20000, Loss: 0.0000224624782277\n",
      "Epoch: 7670/20000, Loss: 0.0000052134387261\n",
      "Epoch: 7680/20000, Loss: 0.0000051570259529\n",
      "Epoch: 7690/20000, Loss: 0.0000051260726650\n",
      "Epoch: 7700/20000, Loss: 0.0000051051833907\n",
      "Epoch: 7710/20000, Loss: 0.0000050904254749\n",
      "Epoch: 7720/20000, Loss: 0.0000050684725466\n",
      "Epoch: 7730/20000, Loss: 0.0000050352778089\n",
      "Epoch: 7740/20000, Loss: 0.0000050035473578\n",
      "Epoch: 7750/20000, Loss: 0.0000049814593694\n",
      "Epoch: 7760/20000, Loss: 0.0000049605723689\n",
      "Epoch: 7770/20000, Loss: 0.0000049391301218\n",
      "Epoch: 7780/20000, Loss: 0.0000049183622650\n",
      "Epoch: 7790/20000, Loss: 0.0000048976035032\n",
      "Epoch: 7800/20000, Loss: 0.0000048769584282\n",
      "Epoch: 7810/20000, Loss: 0.0000048564165809\n",
      "Epoch: 7820/20000, Loss: 0.0000048359702305\n",
      "Epoch: 7830/20000, Loss: 0.0000048156016419\n",
      "Epoch: 7840/20000, Loss: 0.0000047953126341\n",
      "Epoch: 7850/20000, Loss: 0.0000047751118473\n",
      "Epoch: 7860/20000, Loss: 0.0000047549779083\n",
      "Epoch: 7870/20000, Loss: 0.0000047349126362\n",
      "Epoch: 7880/20000, Loss: 0.0000047149324018\n",
      "Epoch: 7890/20000, Loss: 0.0000046950344768\n",
      "Epoch: 7900/20000, Loss: 0.0000046755931180\n",
      "Epoch: 7910/20000, Loss: 0.0000047177227316\n",
      "Epoch: 7920/20000, Loss: 0.0000184417167475\n",
      "Epoch: 7930/20000, Loss: 0.0000075547095548\n",
      "Epoch: 7940/20000, Loss: 0.0000054298820942\n",
      "Epoch: 7950/20000, Loss: 0.0000046725840548\n",
      "Epoch: 7960/20000, Loss: 0.0000045780602704\n",
      "Epoch: 7970/20000, Loss: 0.0000045539900384\n",
      "Epoch: 7980/20000, Loss: 0.0000045328588385\n",
      "Epoch: 7990/20000, Loss: 0.0000045145789045\n",
      "Epoch: 8000/20000, Loss: 0.0000044965254347\n",
      "Epoch: 8010/20000, Loss: 0.0000044766684368\n",
      "Epoch: 8020/20000, Loss: 0.0000044560711103\n",
      "Epoch: 8030/20000, Loss: 0.0000044367693590\n",
      "Epoch: 8040/20000, Loss: 0.0000044180305849\n",
      "Epoch: 8050/20000, Loss: 0.0000043992035899\n",
      "Epoch: 8060/20000, Loss: 0.0000043805589485\n",
      "Epoch: 8070/20000, Loss: 0.0000043619734242\n",
      "Epoch: 8080/20000, Loss: 0.0000043434652071\n",
      "Epoch: 8090/20000, Loss: 0.0000043250302042\n",
      "Epoch: 8100/20000, Loss: 0.0000043066597755\n",
      "Epoch: 8110/20000, Loss: 0.0000042883584683\n",
      "Epoch: 8120/20000, Loss: 0.0000042701162783\n",
      "Epoch: 8130/20000, Loss: 0.0000042519436647\n",
      "Epoch: 8140/20000, Loss: 0.0000042338219828\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 8150/20000, Loss: 0.0000042157703319\n",
      "Epoch: 8160/20000, Loss: 0.0000041977823457\n",
      "Epoch: 8170/20000, Loss: 0.0000041798471102\n",
      "Epoch: 8180/20000, Loss: 0.0000041620869524\n",
      "Epoch: 8190/20000, Loss: 0.0000041598882490\n",
      "Epoch: 8200/20000, Loss: 0.0000082655069491\n",
      "Epoch: 8210/20000, Loss: 0.0000129499449031\n",
      "Epoch: 8220/20000, Loss: 0.0000069513871495\n",
      "Epoch: 8230/20000, Loss: 0.0000053307621783\n",
      "Epoch: 8240/20000, Loss: 0.0000044635344238\n",
      "Epoch: 8250/20000, Loss: 0.0000041667271944\n",
      "Epoch: 8260/20000, Loss: 0.0000040742215788\n",
      "Epoch: 8270/20000, Loss: 0.0000040334271034\n",
      "Epoch: 8280/20000, Loss: 0.0000040065306166\n",
      "Epoch: 8290/20000, Loss: 0.0000039843494051\n",
      "Epoch: 8300/20000, Loss: 0.0000039650167309\n",
      "Epoch: 8310/20000, Loss: 0.0000039476844904\n",
      "Epoch: 8320/20000, Loss: 0.0000039306723920\n",
      "Epoch: 8330/20000, Loss: 0.0000039135647967\n",
      "Epoch: 8340/20000, Loss: 0.0000038966645661\n",
      "Epoch: 8350/20000, Loss: 0.0000038798152673\n",
      "Epoch: 8360/20000, Loss: 0.0000038630473682\n",
      "Epoch: 8370/20000, Loss: 0.0000038463526835\n",
      "Epoch: 8380/20000, Loss: 0.0000038297075662\n",
      "Epoch: 8390/20000, Loss: 0.0000038131286146\n",
      "Epoch: 8400/20000, Loss: 0.0000037966001400\n",
      "Epoch: 8410/20000, Loss: 0.0000037801416966\n",
      "Epoch: 8420/20000, Loss: 0.0000037637310015\n",
      "Epoch: 8430/20000, Loss: 0.0000037473837438\n",
      "Epoch: 8440/20000, Loss: 0.0000037310890093\n",
      "Epoch: 8450/20000, Loss: 0.0000037148474803\n",
      "Epoch: 8460/20000, Loss: 0.0000036987273688\n",
      "Epoch: 8470/20000, Loss: 0.0000036877677303\n",
      "Epoch: 8480/20000, Loss: 0.0000045002234401\n",
      "Epoch: 8490/20000, Loss: 0.0000086596592155\n",
      "Epoch: 8500/20000, Loss: 0.0000075099546848\n",
      "Epoch: 8510/20000, Loss: 0.0000050203516366\n",
      "Epoch: 8520/20000, Loss: 0.0000041020502977\n",
      "Epoch: 8530/20000, Loss: 0.0000037627801248\n",
      "Epoch: 8540/20000, Loss: 0.0000036249514324\n",
      "Epoch: 8550/20000, Loss: 0.0000035702109926\n",
      "Epoch: 8560/20000, Loss: 0.0000035522407416\n",
      "Epoch: 8570/20000, Loss: 0.0000035379630390\n",
      "Epoch: 8580/20000, Loss: 0.0000035197167563\n",
      "Epoch: 8590/20000, Loss: 0.0000035041307456\n",
      "Epoch: 8600/20000, Loss: 0.0000034883780700\n",
      "Epoch: 8610/20000, Loss: 0.0000034730223888\n",
      "Epoch: 8620/20000, Loss: 0.0000034576555663\n",
      "Epoch: 8630/20000, Loss: 0.0000034424022033\n",
      "Epoch: 8640/20000, Loss: 0.0000034272143239\n",
      "Epoch: 8650/20000, Loss: 0.0000034120841974\n",
      "Epoch: 8660/20000, Loss: 0.0000033970140976\n",
      "Epoch: 8670/20000, Loss: 0.0000033820117551\n",
      "Epoch: 8680/20000, Loss: 0.0000033670626181\n",
      "Epoch: 8690/20000, Loss: 0.0000033521607747\n",
      "Epoch: 8700/20000, Loss: 0.0000033373144106\n",
      "Epoch: 8710/20000, Loss: 0.0000033225344396\n",
      "Epoch: 8720/20000, Loss: 0.0000033080370940\n",
      "Epoch: 8730/20000, Loss: 0.0000033214175801\n",
      "Epoch: 8740/20000, Loss: 0.0000091080000857\n",
      "Epoch: 8750/20000, Loss: 0.0000110736700663\n",
      "Epoch: 8760/20000, Loss: 0.0000054372039813\n",
      "Epoch: 8770/20000, Loss: 0.0000041031939872\n",
      "Epoch: 8780/20000, Loss: 0.0000035311798001\n",
      "Epoch: 8790/20000, Loss: 0.0000033018504837\n",
      "Epoch: 8800/20000, Loss: 0.0000032187754186\n",
      "Epoch: 8810/20000, Loss: 0.0000031904864954\n",
      "Epoch: 8820/20000, Loss: 0.0000031774939089\n",
      "Epoch: 8830/20000, Loss: 0.0000031624090298\n",
      "Epoch: 8840/20000, Loss: 0.0000031463350751\n",
      "Epoch: 8850/20000, Loss: 0.0000031322274481\n",
      "Epoch: 8860/20000, Loss: 0.0000031179552025\n",
      "Epoch: 8870/20000, Loss: 0.0000031040365229\n",
      "Epoch: 8880/20000, Loss: 0.0000030901217087\n",
      "Epoch: 8890/20000, Loss: 0.0000030763005725\n",
      "Epoch: 8900/20000, Loss: 0.0000030625628824\n",
      "Epoch: 8910/20000, Loss: 0.0000030488763514\n",
      "Epoch: 8920/20000, Loss: 0.0000030352457543\n",
      "Epoch: 8930/20000, Loss: 0.0000030216795039\n",
      "Epoch: 8940/20000, Loss: 0.0000030081694149\n",
      "Epoch: 8950/20000, Loss: 0.0000029947127587\n",
      "Epoch: 8960/20000, Loss: 0.0000029813077163\n",
      "Epoch: 8970/20000, Loss: 0.0000029679652016\n",
      "Epoch: 8980/20000, Loss: 0.0000029546922633\n",
      "Epoch: 8990/20000, Loss: 0.0000029440052458\n",
      "Epoch: 9000/20000, Loss: 0.0000034379761473\n",
      "Epoch: 9010/20000, Loss: 0.0000157705235324\n",
      "Epoch: 9020/20000, Loss: 0.0000079759038272\n",
      "Epoch: 9030/20000, Loss: 0.0000046099717110\n",
      "Epoch: 9040/20000, Loss: 0.0000033772887491\n",
      "Epoch: 9050/20000, Loss: 0.0000030248872918\n",
      "Epoch: 9060/20000, Loss: 0.0000029216068924\n",
      "Epoch: 9070/20000, Loss: 0.0000028719746297\n",
      "Epoch: 9080/20000, Loss: 0.0000028419333375\n",
      "Epoch: 9090/20000, Loss: 0.0000028241752261\n",
      "Epoch: 9100/20000, Loss: 0.0000028113413464\n",
      "Epoch: 9110/20000, Loss: 0.0000027981154744\n",
      "Epoch: 9120/20000, Loss: 0.0000027852604489\n",
      "Epoch: 9130/20000, Loss: 0.0000027727562610\n",
      "Epoch: 9140/20000, Loss: 0.0000027602739010\n",
      "Epoch: 9150/20000, Loss: 0.0000027478824904\n",
      "Epoch: 9160/20000, Loss: 0.0000027355729344\n",
      "Epoch: 9170/20000, Loss: 0.0000027233234050\n",
      "Epoch: 9180/20000, Loss: 0.0000027111352665\n",
      "Epoch: 9190/20000, Loss: 0.0000026990060178\n",
      "Epoch: 9200/20000, Loss: 0.0000026869374778\n",
      "Epoch: 9210/20000, Loss: 0.0000026749223707\n",
      "Epoch: 9220/20000, Loss: 0.0000026629620606\n",
      "Epoch: 9230/20000, Loss: 0.0000026510679163\n",
      "Epoch: 9240/20000, Loss: 0.0000026392133350\n",
      "Epoch: 9250/20000, Loss: 0.0000026274497031\n",
      "Epoch: 9260/20000, Loss: 0.0000026180105124\n",
      "Epoch: 9270/20000, Loss: 0.0000030234718906\n",
      "Epoch: 9280/20000, Loss: 0.0000169602080859\n",
      "Epoch: 9290/20000, Loss: 0.0000067848027356\n",
      "Epoch: 9300/20000, Loss: 0.0000041684052121\n",
      "Epoch: 9310/20000, Loss: 0.0000031262015909\n",
      "Epoch: 9320/20000, Loss: 0.0000027267642508\n",
      "Epoch: 9330/20000, Loss: 0.0000025936026304\n",
      "Epoch: 9340/20000, Loss: 0.0000025440510854\n",
      "Epoch: 9350/20000, Loss: 0.0000025241304229\n",
      "Epoch: 9360/20000, Loss: 0.0000025136091608\n",
      "Epoch: 9370/20000, Loss: 0.0000025017452572\n",
      "Epoch: 9380/20000, Loss: 0.0000024895905426\n",
      "Epoch: 9390/20000, Loss: 0.0000024785899768\n",
      "Epoch: 9400/20000, Loss: 0.0000024673979624\n",
      "Epoch: 9410/20000, Loss: 0.0000024564271826\n",
      "Epoch: 9420/20000, Loss: 0.0000024455146104\n",
      "Epoch: 9430/20000, Loss: 0.0000024346729788\n",
      "Epoch: 9440/20000, Loss: 0.0000024238952392\n",
      "Epoch: 9450/20000, Loss: 0.0000024131816190\n",
      "Epoch: 9460/20000, Loss: 0.0000024025293897\n",
      "Epoch: 9470/20000, Loss: 0.0000023919303658\n",
      "Epoch: 9480/20000, Loss: 0.0000023813834105\n",
      "Epoch: 9490/20000, Loss: 0.0000023708930712\n",
      "Epoch: 9500/20000, Loss: 0.0000023604518447\n",
      "Epoch: 9510/20000, Loss: 0.0000023500726911\n",
      "Epoch: 9520/20000, Loss: 0.0000023398940812\n",
      "Epoch: 9530/20000, Loss: 0.0000023479481115\n",
      "Epoch: 9540/20000, Loss: 0.0000062888866523\n",
      "Epoch: 9550/20000, Loss: 0.0000085375813796\n",
      "Epoch: 9560/20000, Loss: 0.0000036941837607\n",
      "Epoch: 9570/20000, Loss: 0.0000030318765312\n",
      "Epoch: 9580/20000, Loss: 0.0000026008210625\n",
      "Epoch: 9590/20000, Loss: 0.0000023775282898\n",
      "Epoch: 9600/20000, Loss: 0.0000022917431579\n",
      "Epoch: 9610/20000, Loss: 0.0000022627812086\n",
      "Epoch: 9620/20000, Loss: 0.0000022521737719\n",
      "Epoch: 9630/20000, Loss: 0.0000022424949293\n",
      "Epoch: 9640/20000, Loss: 0.0000022308622647\n",
      "Epoch: 9650/20000, Loss: 0.0000022207361781\n",
      "Epoch: 9660/20000, Loss: 0.0000022109284146\n",
      "Epoch: 9670/20000, Loss: 0.0000022012511636\n",
      "Epoch: 9680/20000, Loss: 0.0000021916773676\n",
      "Epoch: 9690/20000, Loss: 0.0000021821804239\n",
      "Epoch: 9700/20000, Loss: 0.0000021727539661\n",
      "Epoch: 9710/20000, Loss: 0.0000021633795768\n",
      "Epoch: 9720/20000, Loss: 0.0000021540636226\n",
      "Epoch: 9730/20000, Loss: 0.0000021448049665\n",
      "Epoch: 9740/20000, Loss: 0.0000021355945137\n",
      "Epoch: 9750/20000, Loss: 0.0000021264386305\n",
      "Epoch: 9760/20000, Loss: 0.0000021173291316\n",
      "Epoch: 9770/20000, Loss: 0.0000021082735202\n",
      "Epoch: 9780/20000, Loss: 0.0000020993043108\n",
      "Epoch: 9790/20000, Loss: 0.0000020930140181\n",
      "Epoch: 9800/20000, Loss: 0.0000024386997666\n",
      "Epoch: 9810/20000, Loss: 0.0000178221816896\n",
      "Epoch: 9820/20000, Loss: 0.0000039140604713\n",
      "Epoch: 9830/20000, Loss: 0.0000024387134090\n",
      "Epoch: 9840/20000, Loss: 0.0000021549408302\n",
      "Epoch: 9850/20000, Loss: 0.0000020713860067\n",
      "Epoch: 9860/20000, Loss: 0.0000020598499759\n",
      "Epoch: 9870/20000, Loss: 0.0000020511463390\n",
      "Epoch: 9880/20000, Loss: 0.0000020281640900\n",
      "Epoch: 9890/20000, Loss: 0.0000020132260943\n",
      "Epoch: 9900/20000, Loss: 0.0000020056911580\n",
      "Epoch: 9910/20000, Loss: 0.0000019959575184\n",
      "Epoch: 9920/20000, Loss: 0.0000019875203634\n",
      "Epoch: 9930/20000, Loss: 0.0000019790443275\n",
      "Epoch: 9940/20000, Loss: 0.0000019706792500\n",
      "Epoch: 9950/20000, Loss: 0.0000019624164906\n",
      "Epoch: 9960/20000, Loss: 0.0000019542142127\n",
      "Epoch: 9970/20000, Loss: 0.0000019460590011\n",
      "Epoch: 9980/20000, Loss: 0.0000019379510832\n",
      "Epoch: 9990/20000, Loss: 0.0000019298875031\n",
      "Epoch: 10000/20000, Loss: 0.0000019218723537\n",
      "Epoch: 10010/20000, Loss: 0.0000019138901735\n",
      "Epoch: 10020/20000, Loss: 0.0000019059499436\n",
      "Epoch: 10030/20000, Loss: 0.0000018980873620\n",
      "Epoch: 10040/20000, Loss: 0.0000018931098111\n",
      "Epoch: 10050/20000, Loss: 0.0000023902982775\n",
      "Epoch: 10060/20000, Loss: 0.0000153398850671\n",
      "Epoch: 10070/20000, Loss: 0.0000065802987592\n",
      "Epoch: 10080/20000, Loss: 0.0000035424873204\n",
      "Epoch: 10090/20000, Loss: 0.0000024688090434\n",
      "Epoch: 10100/20000, Loss: 0.0000020723002763\n",
      "Epoch: 10110/20000, Loss: 0.0000019257815893\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10120/20000, Loss: 0.0000018641106863\n",
      "Epoch: 10130/20000, Loss: 0.0000018367891244\n",
      "Epoch: 10140/20000, Loss: 0.0000018261483774\n",
      "Epoch: 10150/20000, Loss: 0.0000018188420654\n",
      "Epoch: 10160/20000, Loss: 0.0000018102645072\n",
      "Epoch: 10170/20000, Loss: 0.0000018028325712\n",
      "Epoch: 10180/20000, Loss: 0.0000017954182567\n",
      "Epoch: 10190/20000, Loss: 0.0000017881476424\n",
      "Epoch: 10200/20000, Loss: 0.0000017809234123\n",
      "Epoch: 10210/20000, Loss: 0.0000017737642111\n",
      "Epoch: 10220/20000, Loss: 0.0000017666581016\n",
      "Epoch: 10230/20000, Loss: 0.0000017595964437\n",
      "Epoch: 10240/20000, Loss: 0.0000017525696876\n",
      "Epoch: 10250/20000, Loss: 0.0000017455871557\n",
      "Epoch: 10260/20000, Loss: 0.0000017386436184\n",
      "Epoch: 10270/20000, Loss: 0.0000017317405536\n",
      "Epoch: 10280/20000, Loss: 0.0000017248783024\n",
      "Epoch: 10290/20000, Loss: 0.0000017180663008\n",
      "Epoch: 10300/20000, Loss: 0.0000017124328906\n",
      "Epoch: 10310/20000, Loss: 0.0000018378664208\n",
      "Epoch: 10320/20000, Loss: 0.0000181833474926\n",
      "Epoch: 10330/20000, Loss: 0.0000027819892239\n",
      "Epoch: 10340/20000, Loss: 0.0000024013488655\n",
      "Epoch: 10350/20000, Loss: 0.0000019862247882\n",
      "Epoch: 10360/20000, Loss: 0.0000018348498543\n",
      "Epoch: 10370/20000, Loss: 0.0000017586280592\n",
      "Epoch: 10380/20000, Loss: 0.0000017016875518\n",
      "Epoch: 10390/20000, Loss: 0.0000016664647546\n",
      "Epoch: 10400/20000, Loss: 0.0000016564448515\n",
      "Epoch: 10410/20000, Loss: 0.0000016507401597\n",
      "Epoch: 10420/20000, Loss: 0.0000016425540252\n",
      "Epoch: 10430/20000, Loss: 0.0000016362802171\n",
      "Epoch: 10440/20000, Loss: 0.0000016297094589\n",
      "Epoch: 10450/20000, Loss: 0.0000016233731230\n",
      "Epoch: 10460/20000, Loss: 0.0000016171046582\n",
      "Epoch: 10470/20000, Loss: 0.0000016108735963\n",
      "Epoch: 10480/20000, Loss: 0.0000016046899418\n",
      "Epoch: 10490/20000, Loss: 0.0000015985439177\n",
      "Epoch: 10500/20000, Loss: 0.0000015924410945\n",
      "Epoch: 10510/20000, Loss: 0.0000015863633962\n",
      "Epoch: 10520/20000, Loss: 0.0000015803287852\n",
      "Epoch: 10530/20000, Loss: 0.0000015743205495\n",
      "Epoch: 10540/20000, Loss: 0.0000015683450556\n",
      "Epoch: 10550/20000, Loss: 0.0000015624074194\n",
      "Epoch: 10560/20000, Loss: 0.0000015573135670\n",
      "Epoch: 10570/20000, Loss: 0.0000017387674234\n",
      "Epoch: 10580/20000, Loss: 0.0000246515865001\n",
      "Epoch: 10590/20000, Loss: 0.0000059612825680\n",
      "Epoch: 10600/20000, Loss: 0.0000037249260458\n",
      "Epoch: 10610/20000, Loss: 0.0000019531048565\n",
      "Epoch: 10620/20000, Loss: 0.0000015537198124\n",
      "Epoch: 10630/20000, Loss: 0.0000015480787852\n",
      "Epoch: 10640/20000, Loss: 0.0000015402617919\n",
      "Epoch: 10650/20000, Loss: 0.0000015254368009\n",
      "Epoch: 10660/20000, Loss: 0.0000015143593828\n",
      "Epoch: 10670/20000, Loss: 0.0000015064598529\n",
      "Epoch: 10680/20000, Loss: 0.0000015001459133\n",
      "Epoch: 10690/20000, Loss: 0.0000014944620261\n",
      "Epoch: 10700/20000, Loss: 0.0000014888341866\n",
      "Epoch: 10710/20000, Loss: 0.0000014831897488\n",
      "Epoch: 10720/20000, Loss: 0.0000014776569515\n",
      "Epoch: 10730/20000, Loss: 0.0000014721855450\n",
      "Epoch: 10740/20000, Loss: 0.0000014667566575\n",
      "Epoch: 10750/20000, Loss: 0.0000014613667645\n",
      "Epoch: 10760/20000, Loss: 0.0000014560079080\n",
      "Epoch: 10770/20000, Loss: 0.0000014506854313\n",
      "Epoch: 10780/20000, Loss: 0.0000014453974018\n",
      "Epoch: 10790/20000, Loss: 0.0000014401300632\n",
      "Epoch: 10800/20000, Loss: 0.0000014348969444\n",
      "Epoch: 10810/20000, Loss: 0.0000014296875861\n",
      "Epoch: 10820/20000, Loss: 0.0000014245076727\n",
      "Epoch: 10830/20000, Loss: 0.0000014193474271\n",
      "Epoch: 10840/20000, Loss: 0.0000014142710825\n",
      "Epoch: 10850/20000, Loss: 0.0000014151696632\n",
      "Epoch: 10860/20000, Loss: 0.0000024964469958\n",
      "Epoch: 10870/20000, Loss: 0.0000135496766234\n",
      "Epoch: 10880/20000, Loss: 0.0000024946875783\n",
      "Epoch: 10890/20000, Loss: 0.0000023157281248\n",
      "Epoch: 10900/20000, Loss: 0.0000014753223923\n",
      "Epoch: 10910/20000, Loss: 0.0000015229102246\n",
      "Epoch: 10920/20000, Loss: 0.0000013872727322\n",
      "Epoch: 10930/20000, Loss: 0.0000013927605096\n",
      "Epoch: 10940/20000, Loss: 0.0000013759906778\n",
      "Epoch: 10950/20000, Loss: 0.0000013669764485\n",
      "Epoch: 10960/20000, Loss: 0.0000013614010186\n",
      "Epoch: 10970/20000, Loss: 0.0000013563944776\n",
      "Epoch: 10980/20000, Loss: 0.0000013515895034\n",
      "Epoch: 10990/20000, Loss: 0.0000013468101088\n",
      "Epoch: 11000/20000, Loss: 0.0000013419868310\n",
      "Epoch: 11010/20000, Loss: 0.0000013372759895\n",
      "Epoch: 11020/20000, Loss: 0.0000013326548469\n",
      "Epoch: 11030/20000, Loss: 0.0000013296260022\n",
      "Epoch: 11040/20000, Loss: 0.0000014157042187\n",
      "Epoch: 11050/20000, Loss: 0.0000094893748610\n",
      "Epoch: 11060/20000, Loss: 0.0000067086980380\n",
      "Epoch: 11070/20000, Loss: 0.0000019703927592\n",
      "Epoch: 11080/20000, Loss: 0.0000013282127611\n",
      "Epoch: 11090/20000, Loss: 0.0000014780761148\n",
      "Epoch: 11100/20000, Loss: 0.0000013744858052\n",
      "Epoch: 11110/20000, Loss: 0.0000013017950096\n",
      "Epoch: 11120/20000, Loss: 0.0000013062519884\n",
      "Epoch: 11130/20000, Loss: 0.0000012909525822\n",
      "Epoch: 11140/20000, Loss: 0.0000012858506580\n",
      "Epoch: 11150/20000, Loss: 0.0000012813246713\n",
      "Epoch: 11160/20000, Loss: 0.0000012764139683\n",
      "Epoch: 11170/20000, Loss: 0.0000012717620166\n",
      "Epoch: 11180/20000, Loss: 0.0000012672509229\n",
      "Epoch: 11190/20000, Loss: 0.0000012627959904\n",
      "Epoch: 11200/20000, Loss: 0.0000012583790294\n",
      "Epoch: 11210/20000, Loss: 0.0000012540106127\n",
      "Epoch: 11220/20000, Loss: 0.0000012496549289\n",
      "Epoch: 11230/20000, Loss: 0.0000012453652971\n",
      "Epoch: 11240/20000, Loss: 0.0000012423846556\n",
      "Epoch: 11250/20000, Loss: 0.0000013403778212\n",
      "Epoch: 11260/20000, Loss: 0.0000125863471112\n",
      "Epoch: 11270/20000, Loss: 0.0000058592345340\n",
      "Epoch: 11280/20000, Loss: 0.0000031984202451\n",
      "Epoch: 11290/20000, Loss: 0.0000018332980289\n",
      "Epoch: 11300/20000, Loss: 0.0000013314264606\n",
      "Epoch: 11310/20000, Loss: 0.0000012233383586\n",
      "Epoch: 11320/20000, Loss: 0.0000012385531818\n",
      "Epoch: 11330/20000, Loss: 0.0000012224508055\n",
      "Epoch: 11340/20000, Loss: 0.0000012081800378\n",
      "Epoch: 11350/20000, Loss: 0.0000012049410998\n",
      "Epoch: 11360/20000, Loss: 0.0000011993209910\n",
      "Epoch: 11370/20000, Loss: 0.0000011948743577\n",
      "Epoch: 11380/20000, Loss: 0.0000011907203543\n",
      "Epoch: 11390/20000, Loss: 0.0000011865299712\n",
      "Epoch: 11400/20000, Loss: 0.0000011823899513\n",
      "Epoch: 11410/20000, Loss: 0.0000011782930187\n",
      "Epoch: 11420/20000, Loss: 0.0000011742309880\n",
      "Epoch: 11430/20000, Loss: 0.0000011701876019\n",
      "Epoch: 11440/20000, Loss: 0.0000011661677490\n",
      "Epoch: 11450/20000, Loss: 0.0000011621643807\n",
      "Epoch: 11460/20000, Loss: 0.0000011581984154\n",
      "Epoch: 11470/20000, Loss: 0.0000011548180510\n",
      "Epoch: 11480/20000, Loss: 0.0000012014775166\n",
      "Epoch: 11490/20000, Loss: 0.0000088415290520\n",
      "Epoch: 11500/20000, Loss: 0.0000084026396507\n",
      "Epoch: 11510/20000, Loss: 0.0000033048379464\n",
      "Epoch: 11520/20000, Loss: 0.0000018830281761\n",
      "Epoch: 11530/20000, Loss: 0.0000013710234725\n",
      "Epoch: 11540/20000, Loss: 0.0000011822660326\n",
      "Epoch: 11550/20000, Loss: 0.0000011348572571\n",
      "Epoch: 11560/20000, Loss: 0.0000011353507716\n",
      "Epoch: 11570/20000, Loss: 0.0000011305691032\n",
      "Epoch: 11580/20000, Loss: 0.0000011210855746\n",
      "Epoch: 11590/20000, Loss: 0.0000011175418422\n",
      "Epoch: 11600/20000, Loss: 0.0000011129471886\n",
      "Epoch: 11610/20000, Loss: 0.0000011091244687\n",
      "Epoch: 11620/20000, Loss: 0.0000011051839692\n",
      "Epoch: 11630/20000, Loss: 0.0000011013481753\n",
      "Epoch: 11640/20000, Loss: 0.0000010975554687\n",
      "Epoch: 11650/20000, Loss: 0.0000010937944808\n",
      "Epoch: 11660/20000, Loss: 0.0000010900533880\n",
      "Epoch: 11670/20000, Loss: 0.0000010863399211\n",
      "Epoch: 11680/20000, Loss: 0.0000010826311154\n",
      "Epoch: 11690/20000, Loss: 0.0000010789510725\n",
      "Epoch: 11700/20000, Loss: 0.0000010752874005\n",
      "Epoch: 11710/20000, Loss: 0.0000010720825685\n",
      "Epoch: 11720/20000, Loss: 0.0000011600939160\n",
      "Epoch: 11730/20000, Loss: 0.0000031834417769\n",
      "Epoch: 11740/20000, Loss: 0.0000089577551989\n",
      "Epoch: 11750/20000, Loss: 0.0000014039127336\n",
      "Epoch: 11760/20000, Loss: 0.0000017570124555\n",
      "Epoch: 11770/20000, Loss: 0.0000011379803482\n",
      "Epoch: 11780/20000, Loss: 0.0000011279790897\n",
      "Epoch: 11790/20000, Loss: 0.0000010872663552\n",
      "Epoch: 11800/20000, Loss: 0.0000010516135944\n",
      "Epoch: 11810/20000, Loss: 0.0000010429333770\n",
      "Epoch: 11820/20000, Loss: 0.0000010388328064\n",
      "Epoch: 11830/20000, Loss: 0.0000010353088555\n",
      "Epoch: 11840/20000, Loss: 0.0000010316443877\n",
      "Epoch: 11850/20000, Loss: 0.0000010277484535\n",
      "Epoch: 11860/20000, Loss: 0.0000010243918496\n",
      "Epoch: 11870/20000, Loss: 0.0000010212206689\n",
      "Epoch: 11880/20000, Loss: 0.0000010224478046\n",
      "Epoch: 11890/20000, Loss: 0.0000012263092231\n",
      "Epoch: 11900/20000, Loss: 0.0000109767388494\n",
      "Epoch: 11910/20000, Loss: 0.0000041868984226\n",
      "Epoch: 11920/20000, Loss: 0.0000017454918861\n",
      "Epoch: 11930/20000, Loss: 0.0000010646481314\n",
      "Epoch: 11940/20000, Loss: 0.0000011789935570\n",
      "Epoch: 11950/20000, Loss: 0.0000010024463108\n",
      "Epoch: 11960/20000, Loss: 0.0000010184320445\n",
      "Epoch: 11970/20000, Loss: 0.0000009994015500\n",
      "Epoch: 11980/20000, Loss: 0.0000009902578313\n",
      "Epoch: 11990/20000, Loss: 0.0000009867198969\n",
      "Epoch: 12000/20000, Loss: 0.0000009832810974\n",
      "Epoch: 12010/20000, Loss: 0.0000009798584415\n",
      "Epoch: 12020/20000, Loss: 0.0000009765626601\n",
      "Epoch: 12030/20000, Loss: 0.0000009732457329\n",
      "Epoch: 12040/20000, Loss: 0.0000009699358543\n",
      "Epoch: 12050/20000, Loss: 0.0000009666598544\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 12060/20000, Loss: 0.0000009634223943\n",
      "Epoch: 12070/20000, Loss: 0.0000009606998219\n",
      "Epoch: 12080/20000, Loss: 0.0000009996509789\n",
      "Epoch: 12090/20000, Loss: 0.0000070378964665\n",
      "Epoch: 12100/20000, Loss: 0.0000083315453594\n",
      "Epoch: 12110/20000, Loss: 0.0000026375778361\n",
      "Epoch: 12120/20000, Loss: 0.0000014598871303\n",
      "Epoch: 12130/20000, Loss: 0.0000010796975403\n",
      "Epoch: 12140/20000, Loss: 0.0000009684627003\n",
      "Epoch: 12150/20000, Loss: 0.0000009523475910\n",
      "Epoch: 12160/20000, Loss: 0.0000009515205193\n",
      "Epoch: 12170/20000, Loss: 0.0000009415062436\n",
      "Epoch: 12180/20000, Loss: 0.0000009342436442\n",
      "Epoch: 12190/20000, Loss: 0.0000009311842177\n",
      "Epoch: 12200/20000, Loss: 0.0000009273013006\n",
      "Epoch: 12210/20000, Loss: 0.0000009241013004\n",
      "Epoch: 12220/20000, Loss: 0.0000009208588949\n",
      "Epoch: 12230/20000, Loss: 0.0000009176756635\n",
      "Epoch: 12240/20000, Loss: 0.0000009145460353\n",
      "Epoch: 12250/20000, Loss: 0.0000009114483532\n",
      "Epoch: 12260/20000, Loss: 0.0000009083623240\n",
      "Epoch: 12270/20000, Loss: 0.0000009052979522\n",
      "Epoch: 12280/20000, Loss: 0.0000009022388099\n",
      "Epoch: 12290/20000, Loss: 0.0000008992048492\n",
      "Epoch: 12300/20000, Loss: 0.0000008961794151\n",
      "Epoch: 12310/20000, Loss: 0.0000008931683624\n",
      "Epoch: 12320/20000, Loss: 0.0000008901844240\n",
      "Epoch: 12330/20000, Loss: 0.0000008887286640\n",
      "Epoch: 12340/20000, Loss: 0.0000011577874375\n",
      "Epoch: 12350/20000, Loss: 0.0000218008790398\n",
      "Epoch: 12360/20000, Loss: 0.0000060444785959\n",
      "Epoch: 12370/20000, Loss: 0.0000026912584872\n",
      "Epoch: 12380/20000, Loss: 0.0000011173020766\n",
      "Epoch: 12390/20000, Loss: 0.0000009052660062\n",
      "Epoch: 12400/20000, Loss: 0.0000009364135281\n",
      "Epoch: 12410/20000, Loss: 0.0000008988961326\n",
      "Epoch: 12420/20000, Loss: 0.0000008809969927\n",
      "Epoch: 12430/20000, Loss: 0.0000008723616247\n",
      "Epoch: 12440/20000, Loss: 0.0000008665618338\n",
      "Epoch: 12450/20000, Loss: 0.0000008627067700\n",
      "Epoch: 12460/20000, Loss: 0.0000008596261409\n",
      "Epoch: 12470/20000, Loss: 0.0000008565901339\n",
      "Epoch: 12480/20000, Loss: 0.0000008535560596\n",
      "Epoch: 12490/20000, Loss: 0.0000008506325457\n",
      "Epoch: 12500/20000, Loss: 0.0000008477362599\n",
      "Epoch: 12510/20000, Loss: 0.0000008448654967\n",
      "Epoch: 12520/20000, Loss: 0.0000008420192898\n",
      "Epoch: 12530/20000, Loss: 0.0000008391943993\n",
      "Epoch: 12540/20000, Loss: 0.0000008363869597\n",
      "Epoch: 12550/20000, Loss: 0.0000008335906045\n",
      "Epoch: 12560/20000, Loss: 0.0000008308121551\n",
      "Epoch: 12570/20000, Loss: 0.0000008280443353\n",
      "Epoch: 12580/20000, Loss: 0.0000008252897032\n",
      "Epoch: 12590/20000, Loss: 0.0000008225434840\n",
      "Epoch: 12600/20000, Loss: 0.0000008198072123\n",
      "Epoch: 12610/20000, Loss: 0.0000008170806609\n",
      "Epoch: 12620/20000, Loss: 0.0000008143701393\n",
      "Epoch: 12630/20000, Loss: 0.0000008121475616\n",
      "Epoch: 12640/20000, Loss: 0.0000008719919151\n",
      "Epoch: 12650/20000, Loss: 0.0000124732478071\n",
      "Epoch: 12660/20000, Loss: 0.0000050421303968\n",
      "Epoch: 12670/20000, Loss: 0.0000019177257400\n",
      "Epoch: 12680/20000, Loss: 0.0000009793075151\n",
      "Epoch: 12690/20000, Loss: 0.0000008304962194\n",
      "Epoch: 12700/20000, Loss: 0.0000008105320717\n",
      "Epoch: 12710/20000, Loss: 0.0000008045164464\n",
      "Epoch: 12720/20000, Loss: 0.0000008019350730\n",
      "Epoch: 12730/20000, Loss: 0.0000007980092391\n",
      "Epoch: 12740/20000, Loss: 0.0000007924756460\n",
      "Epoch: 12750/20000, Loss: 0.0000007880035469\n",
      "Epoch: 12760/20000, Loss: 0.0000007852338513\n",
      "Epoch: 12770/20000, Loss: 0.0000007824688169\n",
      "Epoch: 12780/20000, Loss: 0.0000007797329431\n",
      "Epoch: 12790/20000, Loss: 0.0000007770815955\n",
      "Epoch: 12800/20000, Loss: 0.0000007744636150\n",
      "Epoch: 12810/20000, Loss: 0.0000007718649044\n",
      "Epoch: 12820/20000, Loss: 0.0000007692860891\n",
      "Epoch: 12830/20000, Loss: 0.0000007667212572\n",
      "Epoch: 12840/20000, Loss: 0.0000007641706361\n",
      "Epoch: 12850/20000, Loss: 0.0000007616346238\n",
      "Epoch: 12860/20000, Loss: 0.0000007591077065\n",
      "Epoch: 12870/20000, Loss: 0.0000007567055036\n",
      "Epoch: 12880/20000, Loss: 0.0000007652957379\n",
      "Epoch: 12890/20000, Loss: 0.0000026335255825\n",
      "Epoch: 12900/20000, Loss: 0.0000045516089813\n",
      "Epoch: 12910/20000, Loss: 0.0000017440714828\n",
      "Epoch: 12920/20000, Loss: 0.0000013383813666\n",
      "Epoch: 12930/20000, Loss: 0.0000008132526546\n",
      "Epoch: 12940/20000, Loss: 0.0000008263145901\n",
      "Epoch: 12950/20000, Loss: 0.0000007519753922\n",
      "Epoch: 12960/20000, Loss: 0.0000007396134833\n",
      "Epoch: 12970/20000, Loss: 0.0000007374020470\n",
      "Epoch: 12980/20000, Loss: 0.0000007344672781\n",
      "Epoch: 12990/20000, Loss: 0.0000007316991173\n",
      "Epoch: 13000/20000, Loss: 0.0000007293035651\n",
      "Epoch: 13010/20000, Loss: 0.0000007267042861\n",
      "Epoch: 13020/20000, Loss: 0.0000007243367577\n",
      "Epoch: 13030/20000, Loss: 0.0000007220095881\n",
      "Epoch: 13040/20000, Loss: 0.0000007212963737\n",
      "Epoch: 13050/20000, Loss: 0.0000007866145779\n",
      "Epoch: 13060/20000, Loss: 0.0000056903249970\n",
      "Epoch: 13070/20000, Loss: 0.0000041577027332\n",
      "Epoch: 13080/20000, Loss: 0.0000008526432111\n",
      "Epoch: 13090/20000, Loss: 0.0000012936953908\n",
      "Epoch: 13100/20000, Loss: 0.0000008354244301\n",
      "Epoch: 13110/20000, Loss: 0.0000007331469192\n",
      "Epoch: 13120/20000, Loss: 0.0000007312872299\n",
      "Epoch: 13130/20000, Loss: 0.0000007107173587\n",
      "Epoch: 13140/20000, Loss: 0.0000007021450301\n",
      "Epoch: 13150/20000, Loss: 0.0000007005455132\n",
      "Epoch: 13160/20000, Loss: 0.0000006975800488\n",
      "Epoch: 13170/20000, Loss: 0.0000006948155260\n",
      "Epoch: 13180/20000, Loss: 0.0000006922974194\n",
      "Epoch: 13190/20000, Loss: 0.0000006898902143\n",
      "Epoch: 13200/20000, Loss: 0.0000006875800977\n",
      "Epoch: 13210/20000, Loss: 0.0000006852884553\n",
      "Epoch: 13220/20000, Loss: 0.0000006830293273\n",
      "Epoch: 13230/20000, Loss: 0.0000006809018487\n",
      "Epoch: 13240/20000, Loss: 0.0000006825038668\n",
      "Epoch: 13250/20000, Loss: 0.0000009404859611\n",
      "Epoch: 13260/20000, Loss: 0.0000139278536153\n",
      "Epoch: 13270/20000, Loss: 0.0000012083593219\n",
      "Epoch: 13280/20000, Loss: 0.0000018243578097\n",
      "Epoch: 13290/20000, Loss: 0.0000011767103842\n",
      "Epoch: 13300/20000, Loss: 0.0000007172778282\n",
      "Epoch: 13310/20000, Loss: 0.0000006920440114\n",
      "Epoch: 13320/20000, Loss: 0.0000006907087027\n",
      "Epoch: 13330/20000, Loss: 0.0000006661401812\n",
      "Epoch: 13340/20000, Loss: 0.0000006652564934\n",
      "Epoch: 13350/20000, Loss: 0.0000006613334449\n",
      "Epoch: 13360/20000, Loss: 0.0000006580568765\n",
      "Epoch: 13370/20000, Loss: 0.0000006557458505\n",
      "Epoch: 13380/20000, Loss: 0.0000006535082093\n",
      "Epoch: 13390/20000, Loss: 0.0000006512906339\n",
      "Epoch: 13400/20000, Loss: 0.0000006491023896\n",
      "Epoch: 13410/20000, Loss: 0.0000006469391565\n",
      "Epoch: 13420/20000, Loss: 0.0000006447784813\n",
      "Epoch: 13430/20000, Loss: 0.0000006426612913\n",
      "Epoch: 13440/20000, Loss: 0.0000006417883469\n",
      "Epoch: 13450/20000, Loss: 0.0000007993524491\n",
      "Epoch: 13460/20000, Loss: 0.0000016570176058\n",
      "Epoch: 13470/20000, Loss: 0.0000061715572883\n",
      "Epoch: 13480/20000, Loss: 0.0000021903053948\n",
      "Epoch: 13490/20000, Loss: 0.0000016286486471\n",
      "Epoch: 13500/20000, Loss: 0.0000008088595678\n",
      "Epoch: 13510/20000, Loss: 0.0000006494562399\n",
      "Epoch: 13520/20000, Loss: 0.0000006363416674\n",
      "Epoch: 13530/20000, Loss: 0.0000006280687899\n",
      "Epoch: 13540/20000, Loss: 0.0000006246320368\n",
      "Epoch: 13550/20000, Loss: 0.0000006244940778\n",
      "Epoch: 13560/20000, Loss: 0.0000006198869755\n",
      "Epoch: 13570/20000, Loss: 0.0000006188399766\n",
      "Epoch: 13580/20000, Loss: 0.0000006192230444\n",
      "Epoch: 13590/20000, Loss: 0.0000006635951308\n",
      "Epoch: 13600/20000, Loss: 0.0000024322880563\n",
      "Epoch: 13610/20000, Loss: 0.0000013931065723\n",
      "Epoch: 13620/20000, Loss: 0.0000013680922848\n",
      "Epoch: 13630/20000, Loss: 0.0000010657203120\n",
      "Epoch: 13640/20000, Loss: 0.0000006159280019\n",
      "Epoch: 13650/20000, Loss: 0.0000006734824183\n",
      "Epoch: 13660/20000, Loss: 0.0000006344718599\n",
      "Epoch: 13670/20000, Loss: 0.0000006107711670\n",
      "Epoch: 13680/20000, Loss: 0.0000006033688464\n",
      "Epoch: 13690/20000, Loss: 0.0000005997075050\n",
      "Epoch: 13700/20000, Loss: 0.0000005962592695\n",
      "Epoch: 13710/20000, Loss: 0.0000005939106131\n",
      "Epoch: 13720/20000, Loss: 0.0000005919312684\n",
      "Epoch: 13730/20000, Loss: 0.0000005903135616\n",
      "Epoch: 13740/20000, Loss: 0.0000005926115705\n",
      "Epoch: 13750/20000, Loss: 0.0000007540785987\n",
      "Epoch: 13760/20000, Loss: 0.0000088946426331\n",
      "Epoch: 13770/20000, Loss: 0.0000046424588618\n",
      "Epoch: 13780/20000, Loss: 0.0000008064604913\n",
      "Epoch: 13790/20000, Loss: 0.0000008577930544\n",
      "Epoch: 13800/20000, Loss: 0.0000006993829516\n",
      "Epoch: 13810/20000, Loss: 0.0000006091013347\n",
      "Epoch: 13820/20000, Loss: 0.0000005856817324\n",
      "Epoch: 13830/20000, Loss: 0.0000005856938969\n",
      "Epoch: 13840/20000, Loss: 0.0000005765475066\n",
      "Epoch: 13850/20000, Loss: 0.0000005726875543\n",
      "Epoch: 13860/20000, Loss: 0.0000005705002195\n",
      "Epoch: 13870/20000, Loss: 0.0000005685839142\n",
      "Epoch: 13880/20000, Loss: 0.0000005666742595\n",
      "Epoch: 13890/20000, Loss: 0.0000005647232797\n",
      "Epoch: 13900/20000, Loss: 0.0000005629037219\n",
      "Epoch: 13910/20000, Loss: 0.0000005610900757\n",
      "Epoch: 13920/20000, Loss: 0.0000005595182984\n",
      "Epoch: 13930/20000, Loss: 0.0000005667285450\n",
      "Epoch: 13940/20000, Loss: 0.0000014473832834\n",
      "Epoch: 13950/20000, Loss: 0.0000070090823101\n",
      "Epoch: 13960/20000, Loss: 0.0000026878324206\n",
      "Epoch: 13970/20000, Loss: 0.0000013112893384\n",
      "Epoch: 13980/20000, Loss: 0.0000006176165357\n",
      "Epoch: 13990/20000, Loss: 0.0000005660150464\n",
      "Epoch: 14000/20000, Loss: 0.0000005717624276\n",
      "Epoch: 14010/20000, Loss: 0.0000005561794296\n",
      "Epoch: 14020/20000, Loss: 0.0000005471868576\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 14030/20000, Loss: 0.0000005460356078\n",
      "Epoch: 14040/20000, Loss: 0.0000005421945275\n",
      "Epoch: 14050/20000, Loss: 0.0000005413437520\n",
      "Epoch: 14060/20000, Loss: 0.0000005435213097\n",
      "Epoch: 14070/20000, Loss: 0.0000006269840469\n",
      "Epoch: 14080/20000, Loss: 0.0000041426865209\n",
      "Epoch: 14090/20000, Loss: 0.0000011001574194\n",
      "Epoch: 14100/20000, Loss: 0.0000019201024770\n",
      "Epoch: 14110/20000, Loss: 0.0000005432720513\n",
      "Epoch: 14120/20000, Loss: 0.0000006825757737\n",
      "Epoch: 14130/20000, Loss: 0.0000005849909144\n",
      "Epoch: 14140/20000, Loss: 0.0000005335583069\n",
      "Epoch: 14150/20000, Loss: 0.0000005277170203\n",
      "Epoch: 14160/20000, Loss: 0.0000005258794431\n",
      "Epoch: 14170/20000, Loss: 0.0000005244184536\n",
      "Epoch: 14180/20000, Loss: 0.0000005230465376\n",
      "Epoch: 14190/20000, Loss: 0.0000005208054290\n",
      "Epoch: 14200/20000, Loss: 0.0000005193246579\n",
      "Epoch: 14210/20000, Loss: 0.0000005178753213\n",
      "Epoch: 14220/20000, Loss: 0.0000005199822795\n",
      "Epoch: 14230/20000, Loss: 0.0000006595238347\n",
      "Epoch: 14240/20000, Loss: 0.0000082784335973\n",
      "Epoch: 14250/20000, Loss: 0.0000044388852984\n",
      "Epoch: 14260/20000, Loss: 0.0000005737024367\n",
      "Epoch: 14270/20000, Loss: 0.0000009220537436\n",
      "Epoch: 14280/20000, Loss: 0.0000005659701969\n",
      "Epoch: 14290/20000, Loss: 0.0000005654311508\n",
      "Epoch: 14300/20000, Loss: 0.0000005089970045\n",
      "Epoch: 14310/20000, Loss: 0.0000005132145589\n",
      "Epoch: 14320/20000, Loss: 0.0000005084466466\n",
      "Epoch: 14330/20000, Loss: 0.0000005043877991\n",
      "Epoch: 14340/20000, Loss: 0.0000005020120852\n",
      "Epoch: 14350/20000, Loss: 0.0000005001161867\n",
      "Epoch: 14360/20000, Loss: 0.0000004983329518\n",
      "Epoch: 14370/20000, Loss: 0.0000004967649829\n",
      "Epoch: 14380/20000, Loss: 0.0000004951830306\n",
      "Epoch: 14390/20000, Loss: 0.0000004936600249\n",
      "Epoch: 14400/20000, Loss: 0.0000004923793426\n",
      "Epoch: 14410/20000, Loss: 0.0000005009930533\n",
      "Epoch: 14420/20000, Loss: 0.0000014442191514\n",
      "Epoch: 14430/20000, Loss: 0.0000052730856623\n",
      "Epoch: 14440/20000, Loss: 0.0000035001069136\n",
      "Epoch: 14450/20000, Loss: 0.0000010226788163\n",
      "Epoch: 14460/20000, Loss: 0.0000005043478950\n",
      "Epoch: 14470/20000, Loss: 0.0000005428495342\n",
      "Epoch: 14480/20000, Loss: 0.0000005398396183\n",
      "Epoch: 14490/20000, Loss: 0.0000004869710892\n",
      "Epoch: 14500/20000, Loss: 0.0000004897007102\n",
      "Epoch: 14510/20000, Loss: 0.0000004819706874\n",
      "Epoch: 14520/20000, Loss: 0.0000004811039389\n",
      "Epoch: 14530/20000, Loss: 0.0000004787648322\n",
      "Epoch: 14540/20000, Loss: 0.0000004770030841\n",
      "Epoch: 14550/20000, Loss: 0.0000004754676581\n",
      "Epoch: 14560/20000, Loss: 0.0000004739618760\n",
      "Epoch: 14570/20000, Loss: 0.0000004724779501\n",
      "Epoch: 14580/20000, Loss: 0.0000004710119583\n",
      "Epoch: 14590/20000, Loss: 0.0000004695537541\n",
      "Epoch: 14600/20000, Loss: 0.0000004681262169\n",
      "Epoch: 14610/20000, Loss: 0.0000004683101622\n",
      "Epoch: 14620/20000, Loss: 0.0000007558680863\n",
      "Epoch: 14630/20000, Loss: 0.0000054079987422\n",
      "Epoch: 14640/20000, Loss: 0.0000022250521852\n",
      "Epoch: 14650/20000, Loss: 0.0000011030928135\n",
      "Epoch: 14660/20000, Loss: 0.0000005492714195\n",
      "Epoch: 14670/20000, Loss: 0.0000004915522709\n",
      "Epoch: 14680/20000, Loss: 0.0000004781911116\n",
      "Epoch: 14690/20000, Loss: 0.0000004651140841\n",
      "Epoch: 14700/20000, Loss: 0.0000004602739523\n",
      "Epoch: 14710/20000, Loss: 0.0000004592751282\n",
      "Epoch: 14720/20000, Loss: 0.0000004549605137\n",
      "Epoch: 14730/20000, Loss: 0.0000004543409204\n",
      "Epoch: 14740/20000, Loss: 0.0000004558991691\n",
      "Epoch: 14750/20000, Loss: 0.0000005113367934\n",
      "Epoch: 14760/20000, Loss: 0.0000027900312034\n",
      "Epoch: 14770/20000, Loss: 0.0000005100146723\n",
      "Epoch: 14780/20000, Loss: 0.0000016130388758\n",
      "Epoch: 14790/20000, Loss: 0.0000006913913353\n",
      "Epoch: 14800/20000, Loss: 0.0000004871492365\n",
      "Epoch: 14810/20000, Loss: 0.0000005196463349\n",
      "Epoch: 14820/20000, Loss: 0.0000004686992838\n",
      "Epoch: 14830/20000, Loss: 0.0000004497560440\n",
      "Epoch: 14840/20000, Loss: 0.0000004449668154\n",
      "Epoch: 14850/20000, Loss: 0.0000004427193687\n",
      "Epoch: 14860/20000, Loss: 0.0000004402723448\n",
      "Epoch: 14870/20000, Loss: 0.0000004384981480\n",
      "Epoch: 14880/20000, Loss: 0.0000004372068645\n",
      "Epoch: 14890/20000, Loss: 0.0000004362582331\n",
      "Epoch: 14900/20000, Loss: 0.0000004397174393\n",
      "Epoch: 14910/20000, Loss: 0.0000006278310138\n",
      "Epoch: 14920/20000, Loss: 0.0000095627692644\n",
      "Epoch: 14930/20000, Loss: 0.0000037322442950\n",
      "Epoch: 14940/20000, Loss: 0.0000007960247785\n",
      "Epoch: 14950/20000, Loss: 0.0000006367360470\n",
      "Epoch: 14960/20000, Loss: 0.0000005500159546\n",
      "Epoch: 14970/20000, Loss: 0.0000004545328807\n",
      "Epoch: 14980/20000, Loss: 0.0000004359701791\n",
      "Epoch: 14990/20000, Loss: 0.0000004365504935\n",
      "Epoch: 15000/20000, Loss: 0.0000004290694733\n",
      "Epoch: 15010/20000, Loss: 0.0000004258220088\n",
      "Epoch: 15020/20000, Loss: 0.0000004241748286\n",
      "Epoch: 15030/20000, Loss: 0.0000004228479895\n",
      "Epoch: 15040/20000, Loss: 0.0000004215096681\n",
      "Epoch: 15050/20000, Loss: 0.0000004202008199\n",
      "Epoch: 15060/20000, Loss: 0.0000004190131335\n",
      "Epoch: 15070/20000, Loss: 0.0000004181430597\n",
      "Epoch: 15080/20000, Loss: 0.0000004333372488\n",
      "Epoch: 15090/20000, Loss: 0.0000017597940314\n",
      "Epoch: 15100/20000, Loss: 0.0000083058394011\n",
      "Epoch: 15110/20000, Loss: 0.0000025387289497\n",
      "Epoch: 15120/20000, Loss: 0.0000004904402431\n",
      "Epoch: 15130/20000, Loss: 0.0000005720555123\n",
      "Epoch: 15140/20000, Loss: 0.0000005098749511\n",
      "Epoch: 15150/20000, Loss: 0.0000004353221073\n",
      "Epoch: 15160/20000, Loss: 0.0000004170875343\n",
      "Epoch: 15170/20000, Loss: 0.0000004136095413\n",
      "Epoch: 15180/20000, Loss: 0.0000004111976466\n",
      "Epoch: 15190/20000, Loss: 0.0000004076723599\n",
      "Epoch: 15200/20000, Loss: 0.0000004063724930\n",
      "Epoch: 15210/20000, Loss: 0.0000004048953883\n",
      "Epoch: 15220/20000, Loss: 0.0000004037092651\n",
      "Epoch: 15230/20000, Loss: 0.0000004026042859\n",
      "Epoch: 15240/20000, Loss: 0.0000004026455542\n",
      "Epoch: 15250/20000, Loss: 0.0000005422840559\n",
      "Epoch: 15260/20000, Loss: 0.0000167061389220\n",
      "Epoch: 15270/20000, Loss: 0.0000006311780112\n",
      "Epoch: 15280/20000, Loss: 0.0000005950003015\n",
      "Epoch: 15290/20000, Loss: 0.0000004761601815\n",
      "Epoch: 15300/20000, Loss: 0.0000004361984622\n",
      "Epoch: 15310/20000, Loss: 0.0000004295856684\n",
      "Epoch: 15320/20000, Loss: 0.0000004249050960\n",
      "Epoch: 15330/20000, Loss: 0.0000004091602648\n",
      "Epoch: 15340/20000, Loss: 0.0000003978026086\n",
      "Epoch: 15350/20000, Loss: 0.0000003966033262\n",
      "Epoch: 15360/20000, Loss: 0.0000003949584197\n",
      "Epoch: 15370/20000, Loss: 0.0000003934139841\n",
      "Epoch: 15380/20000, Loss: 0.0000003921940674\n",
      "Epoch: 15390/20000, Loss: 0.0000003910376449\n",
      "Epoch: 15400/20000, Loss: 0.0000003898807108\n",
      "Epoch: 15410/20000, Loss: 0.0000003887662388\n",
      "Epoch: 15420/20000, Loss: 0.0000003876666597\n",
      "Epoch: 15430/20000, Loss: 0.0000003865851284\n",
      "Epoch: 15440/20000, Loss: 0.0000003855158752\n",
      "Epoch: 15450/20000, Loss: 0.0000003844546370\n",
      "Epoch: 15460/20000, Loss: 0.0000003834038864\n",
      "Epoch: 15470/20000, Loss: 0.0000003823620318\n",
      "Epoch: 15480/20000, Loss: 0.0000003813364060\n",
      "Epoch: 15490/20000, Loss: 0.0000003812814668\n",
      "Epoch: 15500/20000, Loss: 0.0000005692399441\n",
      "Epoch: 15510/20000, Loss: 0.0000091227566372\n",
      "Epoch: 15520/20000, Loss: 0.0000042276274144\n",
      "Epoch: 15530/20000, Loss: 0.0000008755374665\n",
      "Epoch: 15540/20000, Loss: 0.0000006470069707\n",
      "Epoch: 15550/20000, Loss: 0.0000005376722925\n",
      "Epoch: 15560/20000, Loss: 0.0000003922465623\n",
      "Epoch: 15570/20000, Loss: 0.0000004060148626\n",
      "Epoch: 15580/20000, Loss: 0.0000003778383189\n",
      "Epoch: 15590/20000, Loss: 0.0000003763533414\n",
      "Epoch: 15600/20000, Loss: 0.0000003750341477\n",
      "Epoch: 15610/20000, Loss: 0.0000003733051983\n",
      "Epoch: 15620/20000, Loss: 0.0000003719731581\n",
      "Epoch: 15630/20000, Loss: 0.0000003708416898\n",
      "Epoch: 15640/20000, Loss: 0.0000003697777800\n",
      "Epoch: 15650/20000, Loss: 0.0000003687731578\n",
      "Epoch: 15660/20000, Loss: 0.0000003677970142\n",
      "Epoch: 15670/20000, Loss: 0.0000003668392026\n",
      "Epoch: 15680/20000, Loss: 0.0000003659488641\n",
      "Epoch: 15690/20000, Loss: 0.0000003671242723\n",
      "Epoch: 15700/20000, Loss: 0.0000005160629257\n",
      "Epoch: 15710/20000, Loss: 0.0000122144992929\n",
      "Epoch: 15720/20000, Loss: 0.0000025573549465\n",
      "Epoch: 15730/20000, Loss: 0.0000018528410237\n",
      "Epoch: 15740/20000, Loss: 0.0000007605382848\n",
      "Epoch: 15750/20000, Loss: 0.0000003776280266\n",
      "Epoch: 15760/20000, Loss: 0.0000004011396584\n",
      "Epoch: 15770/20000, Loss: 0.0000003852011332\n",
      "Epoch: 15780/20000, Loss: 0.0000003632459311\n",
      "Epoch: 15790/20000, Loss: 0.0000003636012877\n",
      "Epoch: 15800/20000, Loss: 0.0000003605449876\n",
      "Epoch: 15810/20000, Loss: 0.0000003586411026\n",
      "Epoch: 15820/20000, Loss: 0.0000003576673464\n",
      "Epoch: 15830/20000, Loss: 0.0000003566538851\n",
      "Epoch: 15840/20000, Loss: 0.0000003556539525\n",
      "Epoch: 15850/20000, Loss: 0.0000003546817027\n",
      "Epoch: 15860/20000, Loss: 0.0000003537399209\n",
      "Epoch: 15870/20000, Loss: 0.0000003528053014\n",
      "Epoch: 15880/20000, Loss: 0.0000003518838412\n",
      "Epoch: 15890/20000, Loss: 0.0000003509693158\n",
      "Epoch: 15900/20000, Loss: 0.0000003500702803\n",
      "Epoch: 15910/20000, Loss: 0.0000003492766325\n",
      "Epoch: 15920/20000, Loss: 0.0000003578158498\n",
      "Epoch: 15930/20000, Loss: 0.0000020115251118\n",
      "Epoch: 15940/20000, Loss: 0.0000005037159667\n",
      "Epoch: 15950/20000, Loss: 0.0000006070699783\n",
      "Epoch: 15960/20000, Loss: 0.0000003931352808\n",
      "Epoch: 15970/20000, Loss: 0.0000003634334007\n",
      "Epoch: 15980/20000, Loss: 0.0000003596933027\n",
      "Epoch: 15990/20000, Loss: 0.0000003624411988\n",
      "Epoch: 16000/20000, Loss: 0.0000003625632985\n",
      "Epoch: 16010/20000, Loss: 0.0000003545155209\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 16020/20000, Loss: 0.0000003468375667\n",
      "Epoch: 16030/20000, Loss: 0.0000003453887132\n",
      "Epoch: 16040/20000, Loss: 0.0000003442516174\n",
      "Epoch: 16050/20000, Loss: 0.0000003429748290\n",
      "Epoch: 16060/20000, Loss: 0.0000003419879704\n",
      "Epoch: 16070/20000, Loss: 0.0000003410226270\n",
      "Epoch: 16080/20000, Loss: 0.0000003400728303\n",
      "Epoch: 16090/20000, Loss: 0.0000003391534733\n",
      "Epoch: 16100/20000, Loss: 0.0000003382710929\n",
      "Epoch: 16110/20000, Loss: 0.0000003387061440\n",
      "Epoch: 16120/20000, Loss: 0.0000005008647008\n",
      "Epoch: 16130/20000, Loss: 0.0000013964486243\n",
      "Epoch: 16140/20000, Loss: 0.0000008911384839\n",
      "Epoch: 16150/20000, Loss: 0.0000003636833412\n",
      "Epoch: 16160/20000, Loss: 0.0000003583919863\n",
      "Epoch: 16170/20000, Loss: 0.0000003727151636\n",
      "Epoch: 16180/20000, Loss: 0.0000003790266021\n",
      "Epoch: 16190/20000, Loss: 0.0000010454474477\n",
      "Epoch: 16200/20000, Loss: 0.0000047602366067\n",
      "Epoch: 16210/20000, Loss: 0.0000015060190890\n",
      "Epoch: 16220/20000, Loss: 0.0000004603212744\n",
      "Epoch: 16230/20000, Loss: 0.0000003338571730\n",
      "Epoch: 16240/20000, Loss: 0.0000003300955598\n",
      "Epoch: 16250/20000, Loss: 0.0000003302839389\n",
      "Epoch: 16260/20000, Loss: 0.0000003354736293\n",
      "Epoch: 16270/20000, Loss: 0.0000003319251221\n",
      "Epoch: 16280/20000, Loss: 0.0000003274002438\n",
      "Epoch: 16290/20000, Loss: 0.0000003252414160\n",
      "Epoch: 16300/20000, Loss: 0.0000003246543940\n",
      "Epoch: 16310/20000, Loss: 0.0000003295602369\n",
      "Epoch: 16320/20000, Loss: 0.0000006871705978\n",
      "Epoch: 16330/20000, Loss: 0.0000112018060463\n",
      "Epoch: 16340/20000, Loss: 0.0000004525983570\n",
      "Epoch: 16350/20000, Loss: 0.0000011205480632\n",
      "Epoch: 16360/20000, Loss: 0.0000006856247410\n",
      "Epoch: 16370/20000, Loss: 0.0000003293499731\n",
      "Epoch: 16380/20000, Loss: 0.0000003731846050\n",
      "Epoch: 16390/20000, Loss: 0.0000003247752716\n",
      "Epoch: 16400/20000, Loss: 0.0000003287432264\n",
      "Epoch: 16410/20000, Loss: 0.0000003207929637\n",
      "Epoch: 16420/20000, Loss: 0.0000003193236751\n",
      "Epoch: 16430/20000, Loss: 0.0000003185441528\n",
      "Epoch: 16440/20000, Loss: 0.0000003175817085\n",
      "Epoch: 16450/20000, Loss: 0.0000003166744307\n",
      "Epoch: 16460/20000, Loss: 0.0000003158393156\n",
      "Epoch: 16470/20000, Loss: 0.0000003152156296\n",
      "Epoch: 16480/20000, Loss: 0.0000003290488166\n",
      "Epoch: 16490/20000, Loss: 0.0000021127852960\n",
      "Epoch: 16500/20000, Loss: 0.0000024282123832\n",
      "Epoch: 16510/20000, Loss: 0.0000005799716973\n",
      "Epoch: 16520/20000, Loss: 0.0000004744708235\n",
      "Epoch: 16530/20000, Loss: 0.0000004135437734\n",
      "Epoch: 16540/20000, Loss: 0.0000004169805266\n",
      "Epoch: 16550/20000, Loss: 0.0000008673248431\n",
      "Epoch: 16560/20000, Loss: 0.0000037879128740\n",
      "Epoch: 16570/20000, Loss: 0.0000010599967482\n",
      "Epoch: 16580/20000, Loss: 0.0000005243725809\n",
      "Epoch: 16590/20000, Loss: 0.0000003310890122\n",
      "Epoch: 16600/20000, Loss: 0.0000003222717737\n",
      "Epoch: 16610/20000, Loss: 0.0000003431358095\n",
      "Epoch: 16620/20000, Loss: 0.0000003131325741\n",
      "Epoch: 16630/20000, Loss: 0.0000003061740586\n",
      "Epoch: 16640/20000, Loss: 0.0000003053821445\n",
      "Epoch: 16650/20000, Loss: 0.0000003115752065\n",
      "Epoch: 16660/20000, Loss: 0.0000008684041291\n",
      "Epoch: 16670/20000, Loss: 0.0000095078821687\n",
      "Epoch: 16680/20000, Loss: 0.0000014643836721\n",
      "Epoch: 16690/20000, Loss: 0.0000003626282137\n",
      "Epoch: 16700/20000, Loss: 0.0000005210941367\n",
      "Epoch: 16710/20000, Loss: 0.0000004431171590\n",
      "Epoch: 16720/20000, Loss: 0.0000003076271469\n",
      "Epoch: 16730/20000, Loss: 0.0000003204754364\n",
      "Epoch: 16740/20000, Loss: 0.0000003036211638\n",
      "Epoch: 16750/20000, Loss: 0.0000003044610253\n",
      "Epoch: 16760/20000, Loss: 0.0000003012907541\n",
      "Epoch: 16770/20000, Loss: 0.0000003001351843\n",
      "Epoch: 16780/20000, Loss: 0.0000002993550083\n",
      "Epoch: 16790/20000, Loss: 0.0000002985508729\n",
      "Epoch: 16800/20000, Loss: 0.0000002977749887\n",
      "Epoch: 16810/20000, Loss: 0.0000002970278956\n",
      "Epoch: 16820/20000, Loss: 0.0000002962950134\n",
      "Epoch: 16830/20000, Loss: 0.0000002955692366\n",
      "Epoch: 16840/20000, Loss: 0.0000002949423958\n",
      "Epoch: 16850/20000, Loss: 0.0000003007271516\n",
      "Epoch: 16860/20000, Loss: 0.0000011892153680\n",
      "Epoch: 16870/20000, Loss: 0.0000058869609347\n",
      "Epoch: 16880/20000, Loss: 0.0000017012242779\n",
      "Epoch: 16890/20000, Loss: 0.0000009846311286\n",
      "Epoch: 16900/20000, Loss: 0.0000004435898120\n",
      "Epoch: 16910/20000, Loss: 0.0000003222862119\n",
      "Epoch: 16920/20000, Loss: 0.0000003012824550\n",
      "Epoch: 16930/20000, Loss: 0.0000002965146280\n",
      "Epoch: 16940/20000, Loss: 0.0000002960744325\n",
      "Epoch: 16950/20000, Loss: 0.0000002913883463\n",
      "Epoch: 16960/20000, Loss: 0.0000002907193561\n",
      "Epoch: 16970/20000, Loss: 0.0000002891572137\n",
      "Epoch: 16980/20000, Loss: 0.0000002898383116\n",
      "Epoch: 16990/20000, Loss: 0.0000003332200151\n",
      "Epoch: 17000/20000, Loss: 0.0000028699967061\n",
      "Epoch: 17010/20000, Loss: 0.0000004271344380\n",
      "Epoch: 17020/20000, Loss: 0.0000019422775495\n",
      "Epoch: 17030/20000, Loss: 0.0000003629082812\n",
      "Epoch: 17040/20000, Loss: 0.0000004769438533\n",
      "Epoch: 17050/20000, Loss: 0.0000002925628735\n",
      "Epoch: 17060/20000, Loss: 0.0000003160645008\n",
      "Epoch: 17070/20000, Loss: 0.0000002932197276\n",
      "Epoch: 17080/20000, Loss: 0.0000002856394588\n",
      "Epoch: 17090/20000, Loss: 0.0000002842876086\n",
      "Epoch: 17100/20000, Loss: 0.0000002835373039\n",
      "Epoch: 17110/20000, Loss: 0.0000002828945469\n",
      "Epoch: 17120/20000, Loss: 0.0000002821652174\n",
      "Epoch: 17130/20000, Loss: 0.0000002813636684\n",
      "Epoch: 17140/20000, Loss: 0.0000002807139481\n",
      "Epoch: 17150/20000, Loss: 0.0000002801420464\n",
      "Epoch: 17160/20000, Loss: 0.0000002811049455\n",
      "Epoch: 17170/20000, Loss: 0.0000003539986722\n",
      "Epoch: 17180/20000, Loss: 0.0000058637897382\n",
      "Epoch: 17190/20000, Loss: 0.0000045322840379\n",
      "Epoch: 17200/20000, Loss: 0.0000003242085143\n",
      "Epoch: 17210/20000, Loss: 0.0000006050254342\n",
      "Epoch: 17220/20000, Loss: 0.0000004710032613\n",
      "Epoch: 17230/20000, Loss: 0.0000002821031728\n",
      "Epoch: 17240/20000, Loss: 0.0000003083299589\n",
      "Epoch: 17250/20000, Loss: 0.0000002790998792\n",
      "Epoch: 17260/20000, Loss: 0.0000002795849809\n",
      "Epoch: 17270/20000, Loss: 0.0000002781168860\n",
      "Epoch: 17280/20000, Loss: 0.0000002762715781\n",
      "Epoch: 17290/20000, Loss: 0.0000002752916544\n",
      "Epoch: 17300/20000, Loss: 0.0000002754179320\n",
      "Epoch: 17310/20000, Loss: 0.0000003148702774\n",
      "Epoch: 17320/20000, Loss: 0.0000021298621959\n",
      "Epoch: 17330/20000, Loss: 0.0000009925049653\n",
      "Epoch: 17340/20000, Loss: 0.0000002774738164\n",
      "Epoch: 17350/20000, Loss: 0.0000003655634373\n",
      "Epoch: 17360/20000, Loss: 0.0000002719334020\n",
      "Epoch: 17370/20000, Loss: 0.0000002868784179\n",
      "Epoch: 17380/20000, Loss: 0.0000004674525655\n",
      "Epoch: 17390/20000, Loss: 0.0000074678277997\n",
      "Epoch: 17400/20000, Loss: 0.0000033746789541\n",
      "Epoch: 17410/20000, Loss: 0.0000003004242615\n",
      "Epoch: 17420/20000, Loss: 0.0000006451560353\n",
      "Epoch: 17430/20000, Loss: 0.0000002873437666\n",
      "Epoch: 17440/20000, Loss: 0.0000003000393747\n",
      "Epoch: 17450/20000, Loss: 0.0000002860976736\n",
      "Epoch: 17460/20000, Loss: 0.0000002731490270\n",
      "Epoch: 17470/20000, Loss: 0.0000002692062253\n",
      "Epoch: 17480/20000, Loss: 0.0000002675674580\n",
      "Epoch: 17490/20000, Loss: 0.0000002663281293\n",
      "Epoch: 17500/20000, Loss: 0.0000002653656281\n",
      "Epoch: 17510/20000, Loss: 0.0000002648233135\n",
      "Epoch: 17520/20000, Loss: 0.0000002641586150\n",
      "Epoch: 17530/20000, Loss: 0.0000002637735577\n",
      "Epoch: 17540/20000, Loss: 0.0000002691057830\n",
      "Epoch: 17550/20000, Loss: 0.0000006189881105\n",
      "Epoch: 17560/20000, Loss: 0.0000113156029329\n",
      "Epoch: 17570/20000, Loss: 0.0000006630016287\n",
      "Epoch: 17580/20000, Loss: 0.0000008075475080\n",
      "Epoch: 17590/20000, Loss: 0.0000006018171916\n",
      "Epoch: 17600/20000, Loss: 0.0000003845615879\n",
      "Epoch: 17610/20000, Loss: 0.0000002863806401\n",
      "Epoch: 17620/20000, Loss: 0.0000002643647292\n",
      "Epoch: 17630/20000, Loss: 0.0000002667019885\n",
      "Epoch: 17640/20000, Loss: 0.0000002625104401\n",
      "Epoch: 17650/20000, Loss: 0.0000002605244447\n",
      "Epoch: 17660/20000, Loss: 0.0000002597976447\n",
      "Epoch: 17670/20000, Loss: 0.0000002589753478\n",
      "Epoch: 17680/20000, Loss: 0.0000002582773959\n",
      "Epoch: 17690/20000, Loss: 0.0000002576691713\n",
      "Epoch: 17700/20000, Loss: 0.0000002571740936\n",
      "Epoch: 17710/20000, Loss: 0.0000002610971421\n",
      "Epoch: 17720/20000, Loss: 0.0000006406531838\n",
      "Epoch: 17730/20000, Loss: 0.0000096381872936\n",
      "Epoch: 17740/20000, Loss: 0.0000007770529464\n",
      "Epoch: 17750/20000, Loss: 0.0000006373758765\n",
      "Epoch: 17760/20000, Loss: 0.0000004166755900\n",
      "Epoch: 17770/20000, Loss: 0.0000003571085472\n",
      "Epoch: 17780/20000, Loss: 0.0000002917605002\n",
      "Epoch: 17790/20000, Loss: 0.0000002608902037\n",
      "Epoch: 17800/20000, Loss: 0.0000002577916405\n",
      "Epoch: 17810/20000, Loss: 0.0000002551230409\n",
      "Epoch: 17820/20000, Loss: 0.0000002536691568\n",
      "Epoch: 17830/20000, Loss: 0.0000002528613265\n",
      "Epoch: 17840/20000, Loss: 0.0000002521677231\n",
      "Epoch: 17850/20000, Loss: 0.0000002515042183\n",
      "Epoch: 17860/20000, Loss: 0.0000002509201806\n",
      "Epoch: 17870/20000, Loss: 0.0000002503416567\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 17880/20000, Loss: 0.0000002497767753\n",
      "Epoch: 17890/20000, Loss: 0.0000002492496662\n",
      "Epoch: 17900/20000, Loss: 0.0000002498716185\n",
      "Epoch: 17910/20000, Loss: 0.0000003462178597\n",
      "Epoch: 17920/20000, Loss: 0.0000102732356027\n",
      "Epoch: 17930/20000, Loss: 0.0000035872367334\n",
      "Epoch: 17940/20000, Loss: 0.0000017627506850\n",
      "Epoch: 17950/20000, Loss: 0.0000007499277217\n",
      "Epoch: 17960/20000, Loss: 0.0000004380390237\n",
      "Epoch: 17970/20000, Loss: 0.0000003095619547\n",
      "Epoch: 17980/20000, Loss: 0.0000002556852223\n",
      "Epoch: 17990/20000, Loss: 0.0000002506156704\n",
      "Epoch: 18000/20000, Loss: 0.0000002511102366\n",
      "Epoch: 18010/20000, Loss: 0.0000002482412924\n",
      "Epoch: 18020/20000, Loss: 0.0000002468956097\n",
      "Epoch: 18030/20000, Loss: 0.0000002462979580\n",
      "Epoch: 18040/20000, Loss: 0.0000002455236938\n",
      "Epoch: 18050/20000, Loss: 0.0000002448996099\n",
      "Epoch: 18060/20000, Loss: 0.0000002442997982\n",
      "Epoch: 18070/20000, Loss: 0.0000002437101898\n",
      "Epoch: 18080/20000, Loss: 0.0000002431343660\n",
      "Epoch: 18090/20000, Loss: 0.0000002425728098\n",
      "Epoch: 18100/20000, Loss: 0.0000002420195528\n",
      "Epoch: 18110/20000, Loss: 0.0000002414742255\n",
      "Epoch: 18120/20000, Loss: 0.0000002409525166\n",
      "Epoch: 18130/20000, Loss: 0.0000002428058110\n",
      "Epoch: 18140/20000, Loss: 0.0000009083918826\n",
      "Epoch: 18150/20000, Loss: 0.0000031924587347\n",
      "Epoch: 18160/20000, Loss: 0.0000012930644289\n",
      "Epoch: 18170/20000, Loss: 0.0000007411633192\n",
      "Epoch: 18180/20000, Loss: 0.0000007166964906\n",
      "Epoch: 18190/20000, Loss: 0.0000002601866811\n",
      "Epoch: 18200/20000, Loss: 0.0000002746981522\n",
      "Epoch: 18210/20000, Loss: 0.0000002617381938\n",
      "Epoch: 18220/20000, Loss: 0.0000002424767445\n",
      "Epoch: 18230/20000, Loss: 0.0000002401905874\n",
      "Epoch: 18240/20000, Loss: 0.0000002396700154\n",
      "Epoch: 18250/20000, Loss: 0.0000002388530334\n",
      "Epoch: 18260/20000, Loss: 0.0000002380528485\n",
      "Epoch: 18270/20000, Loss: 0.0000002373876100\n",
      "Epoch: 18280/20000, Loss: 0.0000002367898020\n",
      "Epoch: 18290/20000, Loss: 0.0000002362270237\n",
      "Epoch: 18300/20000, Loss: 0.0000002356812132\n",
      "Epoch: 18310/20000, Loss: 0.0000002351502530\n",
      "Epoch: 18320/20000, Loss: 0.0000002346277626\n",
      "Epoch: 18330/20000, Loss: 0.0000002341168823\n",
      "Epoch: 18340/20000, Loss: 0.0000002336082900\n",
      "Epoch: 18350/20000, Loss: 0.0000002331072864\n",
      "Epoch: 18360/20000, Loss: 0.0000002326145960\n",
      "Epoch: 18370/20000, Loss: 0.0000002324345871\n",
      "Epoch: 18380/20000, Loss: 0.0000002835483883\n",
      "Epoch: 18390/20000, Loss: 0.0000114312879305\n",
      "Epoch: 18400/20000, Loss: 0.0000025969361559\n",
      "Epoch: 18410/20000, Loss: 0.0000007884903539\n",
      "Epoch: 18420/20000, Loss: 0.0000003721521011\n",
      "Epoch: 18430/20000, Loss: 0.0000003021075088\n",
      "Epoch: 18440/20000, Loss: 0.0000002624070987\n",
      "Epoch: 18450/20000, Loss: 0.0000002463918634\n",
      "Epoch: 18460/20000, Loss: 0.0000002415937104\n",
      "Epoch: 18470/20000, Loss: 0.0000002379914861\n",
      "Epoch: 18480/20000, Loss: 0.0000002341273273\n",
      "Epoch: 18490/20000, Loss: 0.0000002322395574\n",
      "Epoch: 18500/20000, Loss: 0.0000002315819216\n",
      "Epoch: 18510/20000, Loss: 0.0000002307643570\n",
      "Epoch: 18520/20000, Loss: 0.0000002301679700\n",
      "Epoch: 18530/20000, Loss: 0.0000002295551553\n",
      "Epoch: 18540/20000, Loss: 0.0000002289825858\n",
      "Epoch: 18550/20000, Loss: 0.0000002284274530\n",
      "Epoch: 18560/20000, Loss: 0.0000002278826940\n",
      "Epoch: 18570/20000, Loss: 0.0000002273521886\n",
      "Epoch: 18580/20000, Loss: 0.0000002268303803\n",
      "Epoch: 18590/20000, Loss: 0.0000002263183916\n",
      "Epoch: 18600/20000, Loss: 0.0000002258140626\n",
      "Epoch: 18610/20000, Loss: 0.0000002253196953\n",
      "Epoch: 18620/20000, Loss: 0.0000002248290656\n",
      "Epoch: 18630/20000, Loss: 0.0000002243440633\n",
      "Epoch: 18640/20000, Loss: 0.0000002238758015\n",
      "Epoch: 18650/20000, Loss: 0.0000002240531245\n",
      "Epoch: 18660/20000, Loss: 0.0000003083836475\n",
      "Epoch: 18670/20000, Loss: 0.0000126882741824\n",
      "Epoch: 18680/20000, Loss: 0.0000012452658211\n",
      "Epoch: 18690/20000, Loss: 0.0000006424186836\n",
      "Epoch: 18700/20000, Loss: 0.0000003395394117\n",
      "Epoch: 18710/20000, Loss: 0.0000002740376033\n",
      "Epoch: 18720/20000, Loss: 0.0000002588176358\n",
      "Epoch: 18730/20000, Loss: 0.0000002495994806\n",
      "Epoch: 18740/20000, Loss: 0.0000002366159606\n",
      "Epoch: 18750/20000, Loss: 0.0000002260173062\n",
      "Epoch: 18760/20000, Loss: 0.0000002236016172\n",
      "Epoch: 18770/20000, Loss: 0.0000002233006171\n",
      "Epoch: 18780/20000, Loss: 0.0000002221247826\n",
      "Epoch: 18790/20000, Loss: 0.0000002218937567\n",
      "Epoch: 18800/20000, Loss: 0.0000002401708059\n",
      "Epoch: 18810/20000, Loss: 0.0000019195299501\n",
      "Epoch: 18820/20000, Loss: 0.0000012127404716\n",
      "Epoch: 18830/20000, Loss: 0.0000003159397011\n",
      "Epoch: 18840/20000, Loss: 0.0000002833993733\n",
      "Epoch: 18850/20000, Loss: 0.0000002608619809\n",
      "Epoch: 18860/20000, Loss: 0.0000002210373253\n",
      "Epoch: 18870/20000, Loss: 0.0000002242726396\n",
      "Epoch: 18880/20000, Loss: 0.0000002176928575\n",
      "Epoch: 18890/20000, Loss: 0.0000002173640041\n",
      "Epoch: 18900/20000, Loss: 0.0000002166534330\n",
      "Epoch: 18910/20000, Loss: 0.0000002159750068\n",
      "Epoch: 18920/20000, Loss: 0.0000002154983889\n",
      "Epoch: 18930/20000, Loss: 0.0000002167432456\n",
      "Epoch: 18940/20000, Loss: 0.0000003848773531\n",
      "Epoch: 18950/20000, Loss: 0.0000135023719849\n",
      "Epoch: 18960/20000, Loss: 0.0000003910457451\n",
      "Epoch: 18970/20000, Loss: 0.0000006535237276\n",
      "Epoch: 18980/20000, Loss: 0.0000005575772661\n",
      "Epoch: 18990/20000, Loss: 0.0000004090118466\n",
      "Epoch: 19000/20000, Loss: 0.0000002753758963\n",
      "Epoch: 19010/20000, Loss: 0.0000002187123869\n",
      "Epoch: 19020/20000, Loss: 0.0000002218671966\n",
      "Epoch: 19030/20000, Loss: 0.0000002176680027\n",
      "Epoch: 19040/20000, Loss: 0.0000002152261658\n",
      "Epoch: 19050/20000, Loss: 0.0000002143334825\n",
      "Epoch: 19060/20000, Loss: 0.0000002137289954\n",
      "Epoch: 19070/20000, Loss: 0.0000002130270360\n",
      "Epoch: 19080/20000, Loss: 0.0000002124780849\n",
      "Epoch: 19090/20000, Loss: 0.0000002119646467\n",
      "Epoch: 19100/20000, Loss: 0.0000002114647515\n",
      "Epoch: 19110/20000, Loss: 0.0000002110574542\n",
      "Epoch: 19120/20000, Loss: 0.0000002164147048\n",
      "Epoch: 19130/20000, Loss: 0.0000009787868294\n",
      "Epoch: 19140/20000, Loss: 0.0000007813544016\n",
      "Epoch: 19150/20000, Loss: 0.0000003206840518\n",
      "Epoch: 19160/20000, Loss: 0.0000003877991048\n",
      "Epoch: 19170/20000, Loss: 0.0000002746238579\n",
      "Epoch: 19180/20000, Loss: 0.0000003852953512\n",
      "Epoch: 19190/20000, Loss: 0.0000038577682062\n",
      "Epoch: 19200/20000, Loss: 0.0000008726321425\n",
      "Epoch: 19210/20000, Loss: 0.0000008996830161\n",
      "Epoch: 19220/20000, Loss: 0.0000005013283726\n",
      "Epoch: 19230/20000, Loss: 0.0000002922107853\n",
      "Epoch: 19240/20000, Loss: 0.0000002393764191\n",
      "Epoch: 19250/20000, Loss: 0.0000002245950412\n",
      "Epoch: 19260/20000, Loss: 0.0000002126997742\n",
      "Epoch: 19270/20000, Loss: 0.0000002065943221\n",
      "Epoch: 19280/20000, Loss: 0.0000002075090180\n",
      "Epoch: 19290/20000, Loss: 0.0000002094391789\n",
      "Epoch: 19300/20000, Loss: 0.0000002377598776\n",
      "Epoch: 19310/20000, Loss: 0.0000010625399227\n",
      "Epoch: 19320/20000, Loss: 0.0000041256103032\n",
      "Epoch: 19330/20000, Loss: 0.0000003902756305\n",
      "Epoch: 19340/20000, Loss: 0.0000004613473834\n",
      "Epoch: 19350/20000, Loss: 0.0000004148189134\n",
      "Epoch: 19360/20000, Loss: 0.0000002514985908\n",
      "Epoch: 19370/20000, Loss: 0.0000002121711162\n",
      "Epoch: 19380/20000, Loss: 0.0000002067415750\n",
      "Epoch: 19390/20000, Loss: 0.0000002062097622\n",
      "Epoch: 19400/20000, Loss: 0.0000002051412906\n",
      "Epoch: 19410/20000, Loss: 0.0000002026050936\n",
      "Epoch: 19420/20000, Loss: 0.0000002027128261\n",
      "Epoch: 19430/20000, Loss: 0.0000002025910675\n",
      "Epoch: 19440/20000, Loss: 0.0000002082948072\n",
      "Epoch: 19450/20000, Loss: 0.0000003933478467\n",
      "Epoch: 19460/20000, Loss: 0.0000062127637648\n",
      "Epoch: 19470/20000, Loss: 0.0000025164124509\n",
      "Epoch: 19480/20000, Loss: 0.0000008425099054\n",
      "Epoch: 19490/20000, Loss: 0.0000002671143875\n",
      "Epoch: 19500/20000, Loss: 0.0000002124837977\n",
      "Epoch: 19510/20000, Loss: 0.0000002219949522\n",
      "Epoch: 19520/20000, Loss: 0.0000002148189395\n",
      "Epoch: 19530/20000, Loss: 0.0000002020890548\n",
      "Epoch: 19540/20000, Loss: 0.0000001994022938\n",
      "Epoch: 19550/20000, Loss: 0.0000001992909660\n",
      "Epoch: 19560/20000, Loss: 0.0000001998143802\n",
      "Epoch: 19570/20000, Loss: 0.0000002540388664\n",
      "Epoch: 19580/20000, Loss: 0.0000038587131712\n",
      "Epoch: 19590/20000, Loss: 0.0000018515227111\n",
      "Epoch: 19600/20000, Loss: 0.0000009184815326\n",
      "Epoch: 19610/20000, Loss: 0.0000006733751547\n",
      "Epoch: 19620/20000, Loss: 0.0000002123252187\n",
      "Epoch: 19630/20000, Loss: 0.0000002698793935\n",
      "Epoch: 19640/20000, Loss: 0.0000002051802568\n",
      "Epoch: 19650/20000, Loss: 0.0000002008910087\n",
      "Epoch: 19660/20000, Loss: 0.0000002010435480\n",
      "Epoch: 19670/20000, Loss: 0.0000001983139128\n",
      "Epoch: 19680/20000, Loss: 0.0000001968792844\n",
      "Epoch: 19690/20000, Loss: 0.0000001960843576\n",
      "Epoch: 19700/20000, Loss: 0.0000001954447697\n",
      "Epoch: 19710/20000, Loss: 0.0000001949169217\n",
      "Epoch: 19720/20000, Loss: 0.0000001944898997\n",
      "Epoch: 19730/20000, Loss: 0.0000001940465495\n",
      "Epoch: 19740/20000, Loss: 0.0000001936772236\n",
      "Epoch: 19750/20000, Loss: 0.0000001948068586\n",
      "Epoch: 19760/20000, Loss: 0.0000002823755665\n",
      "Epoch: 19770/20000, Loss: 0.0000077438662629\n",
      "Epoch: 19780/20000, Loss: 0.0000045950296226\n",
      "Epoch: 19790/20000, Loss: 0.0000008961662274\n",
      "Epoch: 19800/20000, Loss: 0.0000002052175603\n",
      "Epoch: 19810/20000, Loss: 0.0000003446493224\n",
      "Epoch: 19820/20000, Loss: 0.0000002452495949\n",
      "Epoch: 19830/20000, Loss: 0.0000001994794019\n",
      "Epoch: 19840/20000, Loss: 0.0000002017856104\n",
      "Epoch: 19850/20000, Loss: 0.0000001951989077\n",
      "Epoch: 19860/20000, Loss: 0.0000001927368345\n",
      "Epoch: 19870/20000, Loss: 0.0000001924666861\n",
      "Epoch: 19880/20000, Loss: 0.0000001922238368\n",
      "Epoch: 19890/20000, Loss: 0.0000002151378453\n",
      "Epoch: 19900/20000, Loss: 0.0000019855838218\n",
      "Epoch: 19910/20000, Loss: 0.0000011784313756\n",
      "Epoch: 19920/20000, Loss: 0.0000002159982273\n",
      "Epoch: 19930/20000, Loss: 0.0000002867578530\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 19940/20000, Loss: 0.0000002127903969\n",
      "Epoch: 19950/20000, Loss: 0.0000001988168350\n",
      "Epoch: 19960/20000, Loss: 0.0000001940908021\n",
      "Epoch: 19970/20000, Loss: 0.0000002103947736\n",
      "Epoch: 19980/20000, Loss: 0.0000007034715281\n",
      "Epoch: 19990/20000, Loss: 0.0000064280652623\n",
      "Epoch: 20000/20000, Loss: 0.0000012396001239\n"
     ]
    }
   ],
   "source": [
    "# Create LEM instance\n",
    "lem = LEM(input_size, hidden_size, output_size, dt=0.1)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(lem.parameters(), lr=0.001)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Forward pass\n",
    "    output = lem(input_tensor)\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch + 1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch + 1}/{num_epochs}, Loss: {loss.item():.16f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "1da66d64",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 256])\n",
      "torch.Size([1, 20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(test_tensor.shape)\n",
    "prediction_tensor = torch.zeros(1, 20, 256).float()\n",
    "print(prediction_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a0543daa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 256])\n",
      "(256, 1)\n",
      "(256, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "with torch.no_grad():\n",
    "    prediction = lem(test_tensor)\n",
    "    prediction = prediction.view(1, 1, 256).float()\n",
    "    prediction_tensor[:, 0, :] = prediction\n",
    "    for i in range(19):\n",
    "        prediction = lem(prediction)\n",
    "        prediction = prediction.view(1, 1, 256).float()\n",
    "        prediction_tensor[:, i+1, :] = prediction\n",
    "        \n",
    "print(prediction.shape)\n",
    "\n",
    "final_out = prediction.detach().numpy().reshape(-1,1)\n",
    "final_true = u[:,-1].reshape(-1,1)\n",
    "\n",
    "print(final_out.shape)\n",
    "print(final_true.shape)\n",
    "\n",
    "x = x.reshape(-1, 1)\n",
    "\n",
    "plt.plot(x, final_out)\n",
    "plt.plot(x, final_true)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e6b9bad",
   "metadata": {},
   "source": [
    "### Four different types of error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "62f97dbb",
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.no_grad():\n",
    "    prediction = lem(test_tensor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9c33b0f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exact Solution\n",
    "\n",
    "u_test = u_1.T\n",
    "u_test_full = u_test[80:100, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fad72b97",
   "metadata": {},
   "outputs": [],
   "source": [
    "prediction.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "00c8fa22",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(20, 256)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "u_test_full.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "334bf0be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([20, 256])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Extrapolation\n",
    "\n",
    "k1 = ( prediction_tensor - u_test_full)**2\n",
    "u_test_full_tensor = torch.tensor(u_test_full**2)\n",
    "u_test_full_tensor.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01080c4f",
   "metadata": {},
   "source": [
    "### L^2 norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "33c17bd8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  0.00013050968844696258 %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(k1)/ torch.mean(u_test_full_tensor)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa3fa35b",
   "metadata": {},
   "source": [
    "### Absolute norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "01cf8637",
   "metadata": {},
   "outputs": [],
   "source": [
    "R_abs = torch.max(torch.abs(prediction_tensor - u_test_full))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "b3e65482",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(0.0246, dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "print(R_abs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "678810f2",
   "metadata": {},
   "source": [
    "### Explained variance score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "02c72385",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Explained Variance Score: 0.9998695252949855\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_43396/2104891356.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
      "  a = torch.tensor(a)\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "\n",
    "a = prediction_tensor\n",
    "b = u_test_full\n",
    "# Assuming 'a' is your predicted values (model's predictions) and 'b' is the true values (ground truth)\n",
    "# Make sure 'a' and 'b' are PyTorch tensors\n",
    "a = torch.tensor(a)\n",
    "b = torch.tensor(b)\n",
    "# Calculate the mean of 'b'\n",
    "mean_b = torch.mean(b)\n",
    "\n",
    "# Calculate the Explained Variance Score\n",
    "numerator = torch.var(b - a)  # Variance of the differences between 'b' and 'a'\n",
    "denominator = torch.var(b)    # Variance of 'b'\n",
    "evs = 1 - numerator / denominator\n",
    "\n",
    "print(\"Explained Variance Score:\", evs.item())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f664baf6",
   "metadata": {},
   "source": [
    "### Mean absolute error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "43fc2394",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  tensor(0.0035, dtype=torch.float64) %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(torch.abs(prediction_tensor - u_test_full))\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test, \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75e50e9e",
   "metadata": {},
   "source": [
    "### Contour plot for PINN (80 percent) and (20 percentage lem prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "6060ec4b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 79, 256])\n",
      "torch.Size([79, 256])\n",
      "torch.Size([1, 20, 256])\n"
     ]
    }
   ],
   "source": [
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "# print(prediction.shape)\n",
    "print(input_tensor.shape)\n",
    "print(conc_u.shape)\n",
    "print(prediction_tensor.shape)\n",
    "prediction_tensor = torch.squeeze(prediction_tensor)\n",
    "input_tensor = torch.squeeze(input_tensor)\n",
    "\n",
    "conc_u = torch.squeeze(input_tensor)\n",
    "concatenated_tensor = torch.cat((conc_u, prediction_tensor), dim=0)\n",
    "\n",
    "x1 = np.linspace(-1, 1, 256)\n",
    "t1 = np.linspace(0, 1, 99)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "58375ee7",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams['figure.figsize'] = [10, 4]\n",
    "\n",
    "from matplotlib.font_manager import FontProperties\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "font_path = 'times-new-roman.ttf'\n",
    "custom_font = FontProperties(fname=font_path)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a81507bb",
   "metadata": {},
   "source": [
    "### with coolwarm plot style"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "ec236fde",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "X, T = np.meshgrid(x1, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure(figsize=(15, 5))\n",
    "CS1 = plt.contourf(T, X, concatenated_array, levels=c_levels, cmap='coolwarm')\n",
    "\n",
    "# Create a custom font with Times New Roman\n",
    "plt.rcParams['figure.figsize'] = [10, 4]\n",
    "\n",
    "from matplotlib.font_manager import FontProperties\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "font_path = 'times-new-roman.ttf'\n",
    "custom_font = FontProperties(fname=font_path)\n",
    "\n",
    "cbar1 = plt.colorbar(CS1)\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_fontproperties(custom_font)\n",
    "    t.set_fontsize(20)\n",
    "\n",
    "plt.xlabel('$t$', fontsize=20, fontproperties=custom_font)\n",
    "plt.ylabel('$x$', fontsize=20, fontproperties=custom_font)\n",
    "plt.title('$u(x, t)$', fontsize=20, fontproperties=custom_font)\n",
    "plt.xticks(fontsize=20, fontproperties=custom_font)\n",
    "plt.yticks(fontsize=20, fontproperties=custom_font)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=0.8, color='black', linestyle='dotted')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "cbar1.locator = FixedLocator(c_ticks)\n",
    "\n",
    "plt.savefig('fig1.pdf', dpi=300)\n",
    "plt.savefig('Fig1.png', dpi=300)\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ce41226",
   "metadata": {},
   "source": [
    "### Contour plot where 80 percent for PINN solution and 20 percent for lem solution"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0e0864d",
   "metadata": {},
   "source": [
    "### with rainbow style"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "b835b862",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "X, T = np.meshgrid(x1, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure(figsize=(15, 5))\n",
    "CS1 = plt.contourf(T, X, concatenated_array, levels=c_levels, cmap='rainbow')\n",
    "\n",
    "# Create a custom font with Times New Roman\n",
    "plt.rcParams['figure.figsize'] = [10, 4]\n",
    "\n",
    "from matplotlib.font_manager import FontProperties\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "font_path = 'times-new-roman.ttf'\n",
    "custom_font = FontProperties(fname=font_path)\n",
    "\n",
    "cbar1 = plt.colorbar(CS1)\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_fontproperties(custom_font)\n",
    "    t.set_fontsize(20)\n",
    "\n",
    "plt.xlabel('$t$', fontsize=20, fontproperties=custom_font)\n",
    "plt.ylabel('$x$', fontsize=20, fontproperties=custom_font)\n",
    "plt.title('$u(x, t)$', fontsize=20, fontproperties=custom_font)\n",
    "plt.xticks(fontsize=20, fontproperties=custom_font)\n",
    "plt.yticks(fontsize=20, fontproperties=custom_font)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=0.8, color='black', linestyle='dotted')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "cbar1.locator = FixedLocator(c_ticks)\n",
    "\n",
    "plt.savefig('fig1_r.pdf', dpi=300)\n",
    "plt.savefig('Fig1_r.png', dpi=300)\n",
    "# # Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e393a1e0",
   "metadata": {},
   "source": [
    "### Snapshot time plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "c198c904",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(7, 5))  # You can adjust the width (8 inches) and height (5 inches) as needed\n",
    "\n",
    "# Make sure the font is Times Roman\n",
    "# plt.rcParams['font.family'] = 'Times New Roman'\n",
    "\n",
    "# Perform the prediction\n",
    "with torch.no_grad():\n",
    "    prediction = lem(test_tensor)\n",
    "\n",
    "final_time_output = prediction_tensor[3, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, 83].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x, final_out, color='red', linestyle='dotted', linewidth=5, label='Prediction')\n",
    "ax.plot(x, final_true, color='blue', linestyle='solid', linewidth=3, label='True')\n",
    "\n",
    "# Set the axis labels\n",
    "ax.set_xlabel(\"$x$\", fontsize=20, color='black', fontproperties=custom_font)\n",
    "ax.set_ylabel(\"$u(x, t)$\", fontsize=20, color='black', fontproperties=custom_font)\n",
    "\n",
    "# Set the title\n",
    "ax.set_title(\"$t = 0.8300$\", fontsize=20, color='black', fontproperties=custom_font)\n",
    "\n",
    "# Set the y-axis ticks to only -1, 0, and 1\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set the number of ticks for x-axis to 3\n",
    "num_ticks = 3\n",
    "x_ticks = np.linspace(np.min(x), np.max(x), num_ticks)\n",
    "\n",
    "ax.xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "\n",
    "plt.xticks(fontsize=20, fontproperties=custom_font)\n",
    "plt.yticks(fontsize=20, fontproperties=custom_font)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('fig3_r.pdf', dpi=500)\n",
    "plt.savefig('Fig3_r.png', dpi=500)\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "74b85f8e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(7, 5))  # You can adjust the width (8 inches) and height (5 inches) as needed\n",
    "\n",
    "# Make sure the font is Times Roman\n",
    "# plt.rcParams['font.family'] = 'Times New Roman'\n",
    "\n",
    "# # Perform the prediction\n",
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "final_time_output = prediction_tensor[-2, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, -2].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x, final_out, color='red', linestyle='dotted', linewidth=5, label='Prediction')\n",
    "ax.plot(x, final_true, color='blue', linestyle='solid', linewidth=3, label='True')\n",
    "\n",
    "# Set the axis labels\n",
    "ax.set_xlabel(\"$x$\", fontsize=20, color='black', fontproperties=custom_font)\n",
    "ax.set_ylabel(\"$u(x, t)$\", fontsize=20, color='black', fontproperties=custom_font)\n",
    "\n",
    "# Set the title\n",
    "ax.set_title(\"$t = 0.9800$\", fontsize=20, color='black', fontproperties=custom_font)\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "plt.xticks(fontsize=20, fontproperties=custom_font)\n",
    "plt.yticks(fontsize=20, fontproperties=custom_font)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('fig2_r.pdf', dpi=500)\n",
    "plt.savefig('Fig2_r.png', dpi=500)\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1092bb33",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4d75ea20",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8d6ac2bb",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
